在MediaWiki中增加扩展程序Loops实现循环控制
--James Qi 2009年11月29日 (日) 00:33 (CST)
MediaWiki本来只是一种保存文本或者带一定格式控制文本的Wiki系统,但因为有一些程序而使之具有各种特殊功能。 Parser function是很常用的,包括一些算术运算expr+-*//and/or/not、逻辑判断if/ifexist/switch等,这个我是一开始用MediaWiki的时候就安装了这个扩展。
后来在一些应用中还需要特别的功能,就又加入StringFunctions字符串处理扩展和VariablesExtension变量扩展程序,这样再配合DynamicPageList动态页面列表等其它扩展程序就能变得类似一个Basic的简单编程语言了,不过作为程序控制的时候显然缺少了循环控制的基本功能,于是前几天又去找了一个MediaWiki的Extension:Loops,可以让这套“编程语言”基本完整起来。
其语法中支持#while、#dowhile、#loop、#forargs、#fornumargs几种循环控制办法,我试了一下,还比较方便安装和使用。注意默认是将循环的最大次数限制为100次,如果在实际使用中发现需要大于这个次数而系统提示错误的话,就可以修改这个100次到需要的次数,例如改为10000次。
我最开始主要用于显示查号吧中的某些页面中要显示后缀为0000-9999的1万个号码,以前使用调用模板的方式来实现,但包含的数据量大,浏览起来页面速度较慢,对数据库也增加了负载,而采用循环来实现显示1万个号码时,我觉得应该可以减少对数据库的调用、加快网页展示速度。实际使用中功能可以很顺利实现,不过速度是否加快现在还没有明确的判别。
显然这个功能对于需要进行特别控制的地方还是很有用的,我准备以后有时间的时候再专门将Loops应用到其他需要的Wiki网站中去。
标签:MediaWiki、扩展、程序、Loops。 |
相关内容:
|