ウィキペディア日本語版ヘルプページです。



使MediaWiki

概要

編集

MediaWikiHTML使HTML

使

便MediaWikiDoS2006820082meta:Migration to the new preprocessor

制限がおこりやすい事例

編集

読み込み制限は、同じテンプレートを何度も使用している場合によく起こります。例えば、長い表の各行に同じテンプレートを呼び出しているような場合です。テンプレート自体のデータが小さくても、テンプレート呼び出しの際ごとにテンプレートページのソース全体量が計上されますので、思っているよりも簡単に制限値に達することになります。また、当然ながら、呼び出しているテンプレートのサイズが大きければ大きいほど、制限に達するのも早くなります。サイズが大きい理由としてはテンプレート本体が複雑であったり、呼び出し先で必要なデータ以外の多くのデータを含んでいたりすることが考えられます。

制限値に達しているか判別するには

編集

生成されたページ本体のHTMLソース中には、ソースの比較的末尾にHTMLコメントによってカウンターの数値が描き込まれています。そこで、ブラウザのHTMLソースを表示する機能を利用してHTMLソースを確認することで、そのページのカウンターの数値を知る事ができます。

例えば、沖縄県2008年4月23日 (水) 09:39 (UTC) の版)のページの生成されたHTMLソースにはつぎのコメントが含まれています。

<!--
NewPP limit report
Preprocessor node count: 2058/1000000
Post-expand include size: 66434/2048000 bytes
Template argument size: 13611/2048000 bytes
Expensive parser function count: 0/500
-->

/の前の数値が計上された数値、/の後の数値が制限値です。展開後読み込み量 (Post-expand include size) などに関しては、計上された数値(/の前)が制限値(/の後)に近ければ、読み込まれなかったテンプレートがある可能性があります。呼び込まれなかったテンプレートがある場合、この旨を伝えるエラーメッセージがHTMLソース中に表示されます。またいずれかの制限値が上限を越えていると、プレビュー画面でそれぞれに応じた警告が表示されます。

読み込み制限の仕組み

編集

解析の過程で使われる制限には、「プリプロセッサ・ノード数 (Preprocessor node count) 」、「展開後読み込み量」、「テンプレート引数量 (Template argument size) 」、「高負荷条件文関数使用回数 (Expensive parser function count) 」の4種があります。

プリプロセッサ・ノード数

編集

「プリプロセッサ・ノード数」のカウンターは新プリプロセッサから採用されました。これは、データの量ではなく、ページの複雑性を計測しています。解析によってページが展開される時には、HTMLの構造に対応する「ツリー」と呼ばれるデータ構造を生成しますが、このツリーのノードの数を計るものです。このカウンターが制限値を越えると、解析が中止され、生成HTMLページ中に "Node-count limit exceeded" のエラーメッセージを生成します。ノード数にはテンプレートだけでなく、リンク、セクション見出し、HTML要素などがすべて計上されています。

展開後読み込み量

編集

HTMLHTMLHTMLHTMLCategory:



1使使 {{foo}}  {{bar}}  {{foo}} {{bar}}1{{foo}} {{foo|}} {{bar}} 

{{#if:yes|{{bar}}|{{foo}} }} {{bar}}  {{foo}}  {{#if:{{foo}}|yes|no}}  {{foo}}  {{foo}} 


テンプレート引数量

編集

「テンプレート引数量」カウンターは、代入されるテンプレート変数の引数を計上します。

制限値を越えると引数が無視され、ページは自動的にCategory:省略されたテンプレート引数を含むページに追加されます。

高負荷構文解析関数使用回数

編集

使使500

#ifexist使使 #ifexist 

PAGESINCATEGORY

PAGESIZE

500Category:

制限内でやりくりするには

編集

 AAB

ABBCAC2bugzilla:132602{{#if:test|{{template1}}|{{template2}} }}  {{ {{#if:test|template1|template2}} }}

Lua



: #time {{cite web}}使accessdatedate "September 10, 2017" YYYY-MM-DDYYYY-MM-DD

参考情報

編集