「Help:テンプレートの制限」の版間の差分

若干の修正
(更新。en:Wikipedia:Template limits 18:06, 5 November 2008 (UTC) の版より一部翻訳。)
(若干の修正)
 
=== 高負荷条件文関数使用回数 ===
「高負荷条件文関数使用回数」(expensive parser function count)は、[[Help:条件文|条件文]]中の負荷の高い関数の使用回数を500以下に制限するものです。対象となるのは以下のも2つです。
* <nowiki>#</nowiki>ifexist:この関数は、指定されたページが存在するかどうかで出力を切り替えるのに使用されます。使用回数が制限値を超えると、それより後の #ifexist では、ページの存在はすべてないものとして返されます。
* [[Help:マジックワード#統計|PAGESINCATEGORY]]:与えられたカテゴリに含まれるページ数を返します。
* [[Help:マジックワード#統計|PAGESIZE]]:与えられたページのサイズを返します。
 
カウンタが500を越えているページは[[:Category:{{MediaWiki:expensive-parserfunction-category}}]]へ自動的にカテゴライズされます。
ページがテンプレートの制限に達した場合、もっとも一般的な解決法は、 同じテンプレートの呼び出しを避けることです。テンプレートAを何度も呼び出す代りに、Aを引数にとるテンプレートBを呼び出すということが可能な場合があります。
 
現在のところ、展開後読み込み量のカウンタ(後述)の仕様により、入れ子のテンプレート呼び出しは特に高負荷となっています。例えばページAがページBを呼び出しており、ページBは単にページCを呼び出している時、ページAの展開後読み込み量にCのサイズが2回分計上されます([[bugzilla:13260]]参照)。これは条件文にも適用されます。すなわち条件文中にテンプレート呼び出しがあると、最終的な呼び出し先ページの展開後読み込み量に2回計上されます。この問題は、テンプレートタグを条件文の外に出すことで改善できる場合があります(<code><nowiki>{{#if|test|{{template1}}|{{template2}} }}</nowiki></code> を <code><nowiki>{{ {{#if|test|template1|template2}} }}</nowiki></code>に変える)。
 
これでも解決しない場合、テンプレート呼び出しではなく、ページ本体に直接記述するデータを増やすことを考えてみてください。その際には特別ページの[[特別:ExpandTemplates|テンプレートを展開]]が利用できます。