“LLWiki:管理员技术手册”的版本间差异

添加2,911字节 、​ 2020年12月31日 (四) 05:59
使用页面/文本对比查看器快速编辑
(使用页面/文本对比查看器快速编辑)
(使用页面/文本对比查看器快速编辑)
标签移动版网页编辑 移动版编辑
*混淆<code>event.target</code>、<code>event.currentTarget</code>、<code>event.delegateTarget</code>和<code lang="js">this</code>关键字。
*混淆<code>$.when()</code>方法和<code lang="js">Promise.all()</code>方法的参数格式和回调函数。
 
====mediawiki.api====
这个模块提供了一系列方法用于简化API请求。使用这一模块时,需要首先建立一个mw.Api对象,常用语法为<code lang="js">const api = new mw.Api();</code>。以下列举这个mw.Api对象常用的方法,没有出现在以下列表中的方法可能不仅是不推荐使用,而是因为未适配中文的繁简转换而不应在LLWiki使用。
 
*api.get(),这是最基础的两个方法之一,用于提交类型为GET的Ajax请求,参数基本与api.php的参数一致,区别在于返回的格式已经限定为JSON对象,即可省略<code lang="js">{format: "json"}</code>这一参数。API请求的参数列表详见[[mw:API:Main_page/zh|API文档]],这里特别推荐一下generator参数<ref>[[mw:API:Query/zh|API文档(action = query)]]</ref>的强大功能和<code lang="js">{formatversion: 2}</code>这个参数。
*api.post(),这是最基础的两个方法之一,用于提交类型为POST的Ajax请求,用法与api.get()方法高度相似。一般情形下,<code lang="js">{action: 'query'}</code>的请求应该使用api.get()方法以充分利用浏览器缓存等优点;但如果请求的数据量过大,可能不得不使用api.post()方法代替。
*api.postWithToken(),提交改动时一般使用这个快捷方法而非传统的api.post(),但在很多情形下都可以替换为下述更为方便的方法,只有用于<code lang="js">{action: 'patrol'}</code>时难以替代。
*api.postWithEditToken(),相当于<code lang="js">api.postWithToken('csrf', params)</code>,主要用于提交编辑。大部分情况下不推荐使用api.edit()方法替代,因为api.edit()在大多数应用场合会造成重复而不必要的<code lang="js">{action: 'query', prop: 'revisions'}</code>请求。为了避免编辑冲突,在LLWiki请尽可能使用[[#LLWiki添加的全局变量和方法|mw.safeEdit()]]方法。另外在建立新页面(<code lang="js">{createonly: 1}</code>或直接应用api.create()方法)时,请务必先检查对应的繁简中文标题是否已经存在。
*api.newSection(),这个方法相比api.postWithEditToken()可以进一步简化添加新章节的代码。
*api.rollback(),相当于<code lang="js">api.postWithToken('rollback', params)</code>,用于回退。
*api.watch(),相当于<code lang="js">api.postWithToken('watch', params)</code>,用于监视。
*api.unwatch(),相当于<code lang="js">api.postWithToken('watch', params)</code>,用于取消监视。
*api.upload(),相当于api.postWithEditToken()的<code lang="js">{action: 'upload'}</code>。注意这个方法只能上传本地文件,需要通过url上传的请使用api.postWithEditToken()方法。
*api.parse(),用于解析HTML的快捷方法,常用于生成预览。如果要获得现存页面的HTML,还需要加载mediawiki.Title,此时建议可以直接使用标准的api.get()方法代替。
 
====mediawiki.util====
mediawiki.util提供了很多非常方便的方法,可以用于满足形形色色的需要。
16,874

个编辑