LLWiki正在建设中,欢迎加入我们

“User:Bhsd/tool.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
(以“// 生成JS文件大小 var api = new mw.Api(), table = $('table').first(), list = table.find('td:first-child a'); table.find('th').first().after( '<th>大小</th>' )…”替换内容)
标签替换
第1行: 第1行:
// 由[[Special:Mypage/common.js]]调用,可以使用ES6语法
// 生成JS文件大小
// 生成JS文件大小
"use strict";
var api = new mw.Api(),
table = $('table').first(),
mw.myTools = function(table) {
list = table.find('td:first-child a');
table.find( 'th' ).first().after( '<th>大小</th>' );
table.find('th').first().after( '<th>大小</th>' );
const items = table.find( 'td:first-child' ),
titles = items.children( 'a' ).map(function() { return this.title; }).toArray();
list.each(function() {
mw.loader.using( 'mediawiki.api' ).then(() => {
var ele = $(this);
console.log( 'API request: 查询JS页面大小' );
var title = ele.attr('href').substring(4);
const timerStart = mw.now();
api.get({ action:'query', formatversion:2, prop:'info', titles:title }).then(function(data) {
new mw.Api().get({ action:'query', prop:'info', titles:titles.join( '|' ), formatversion:2 })
var length = data.query.pages[0].length;
ele.parent().after('<td>' + length + '</td>');
.then(data => {
console.log( `End API request: 已获得JS页面大小,用时 ${mw.now() - timerStart} ms` );
const lengths = Object.fromEntries( data.query.pages.map(ele => [ele.title, ele.length]) );
items.after(i => { return $('<td>').text( length[ titles[i] ] ); });
});
});
});
});
};

2020年11月20日 (五) 07:04的版本

// 由[[Special:Mypage/common.js]]调用,可以使用ES6语法
// 生成JS文件大小
"use strict";
mw.myTools = function(table) {
    table.find( 'th' ).first().after( '<th>大小</th>' );
    const items = table.find( 'td:first-child' ),
        titles = items.children( 'a' ).map(function() { return this.title; }).toArray();
    mw.loader.using( 'mediawiki.api' ).then(() => {
        console.log( 'API request: 查询JS页面大小' );
        const timerStart = mw.now();
        new mw.Api().get({ action:'query', prop:'info', titles:titles.join( '|' ), formatversion:2 })
            .then(data => {
            console.log( `End API request: 已获得JS页面大小,用时 ${mw.now() - timerStart} ms` );
            const lengths = Object.fromEntries( data.query.pages.map(ele => [ele.title, ele.length]) );
            items.after(i => { return $('<td>').text( length[ titles[i] ] ); });
        });
    });
};