Wikipédia:Technikai korlátok

A MediaWiki tartalmaz néhány olyan technikai korlátot, amelyek egy-egy lap összetettségének, illetve az egyes oldalakon felhasznált adatok (paraméterek) mennyiségének – általában a sablonok használatának – határt szabnak. Ezekkel a technikai korlátokkal akkor szembesülhetünk, amikor egyes tartalmakat különböző technikai sablonok segítségével kívánunk előállítani.

Technikai háttér szerkesztés

Mit jelent a technikai korlát? szerkesztés

A Wikipédia lapjainak előállítása során bizonyos sablon- és elemzőfüggvény-hívások száma, illetve sablonparaméterek mérete nem haladhat meg egy meghatározott értéket. Ezek az értékek korlátot szabnak a lapok összetettségének, bonyolultságának.

Miért van szükség korlátokra? szerkesztés

A nagyon hosszú és összetett lapok értelmezése a szoftver számára időigényes folyamat lehet, ami kellemetlenséget jelent a felhasználó (olvasó) számára. A technikai korlátok biztosítják, hogy az oldalak elfogadható időn belül megjelenjenek.

Előfordulhatnak a szerver elleni úgynevezett DDoS típusú támadások. A technikai korlátok lehetővé teszik az ilyen jellegű támadások kivédését, megelőzését.

Mikor ütközünk korlátokba? szerkesztés

A technikai korlátokkal általában azokon az oldalakon találkozhatunk, amelyek egyes sablonokat (például táblázatépítő sablonokat) viszonylag sokszor használnak. Függetlenül attól, hogy egy-egy sablon egy oldalon milyen terjedelmű tartalmat hoz létre, minden egyes sablonhasználattal egyre közelebb kerülünk valamelyik technikai korláthoz. Általában néhány tucat sablon használatával még a korláton belül maradnak a lapok, viszont egyes összetettebb, bonyolultabb (például több segédsablont is felhasználó) sablon többszöri használata esetén a vártnál hamarabb ütközhetünk technikai korlátba.

Hogyan kérdezhetőek le a korlátok? szerkesztés

Egy adott laphoz tartozó technikai korlátokat és a számlálók aktuális értékeit a laphoz tartozó HTML-kód tartalmazza egy megjegyzésben. Például a Wikipédia oldal forrása 2012. augusztus 26-án az alábbi kommentben tartalmazza a számlálók értékeit:

<!-- 
NewPP limit report
Preprocessor node count: 2281/1000000
Post-expand include size: 41368/2048000 bytes
Template argument size: 18686/2048000 bytes
Highest expansion depth: 10/40
Expensive parser function count: 0/500
-->

ahol:

  • Preprocessor node count:
  • Post-expand include size: a beillesztett sablonok mérete
  • Template argument size: a sablonok paramétereinek mérete
  • Highest expansion depth: a sablonok legnagyobb kibontási mélysége
  • Expensive parser function count: a költséges elemzőfüggvény-hívások száma

A korlátok szerkesztés

A beillesztett sablonok mérete szerkesztés

A beillesztett sablonok mérete nem haladhatja meg a 2 048 000 bájtot.

A túl nagy méretű beillesztett sablont tartalmazó lapok automatikusan bekerülnek a Lapok, melyeken a beillesztett sablon mérete meghaladja a megengedett méretet kategóriába.

Sablonok paramétereinek mérete szerkesztés

A sablonok paramétereinek mérete nem haladhatja meg a 2 048 000 bájtot.

A sablonparaméterek méretének számlálója az oldalon használt sablonok (és a sablonok által felhasznált valamennyi segédsablon) által felhasznált paraméterek teljes méretét számolja.

A sablonok legnagyobb kibontási mélysége szerkesztés

Ha egy lap tartalmazza az A sablont, az A sablon felhasználja a B sablont, a B sablon pedig a C sablont, akkor a lap három szint mélységben tartalmaz sablonokat. A legnagyobb kibontási mélység nem haladhatja meg a 40 darabot.

A túl sok ilyen szintet tartalmazó lapok automatikusan bekerülnek a Lapok, melyeken a sablonok kibontása meghaladja a megengedett szintet kategóriába.

Költséges elemzőfüggvény-hívások száma szerkesztés

A költséges elemzőfüggvény- és változóhívások száma nem haladhatja meg az 500 darabot. Költséges elemzőfüggvénynek, illetve költséges változónak számít:

  • #ifexist: olyan feltételes utasítás, amely egy adott oldal létezését, illetve hiányát vizsgálja. Amennyiben az #ifexist függvények száma átlépi a fenti technikai korlátot, a további függvényhívásoknál a megadott lapot minden esetben vizsgálat nélkül hiányzó lapként fogja kezelni a függvény.
  • PAGESINCATEGORY
  • PAGESIZE

A túl sok költséges elemzőfüggvény- és változóhívást tartalmazó lapok automatikusan bekerülnek a Túl sok költséges elemzőfüggvény-hívást tartalmazó lapok kategóriába.

A #time argumentumainak mérete szerkesztés

A #time elemzőfüggvények második argumentumainak összmérete nem haladhatja meg a 6000 karaktert. Az ezen felüli függvényhívások helyén ez a hibaüzenet jelenik meg: Hiba: a #time túl sokszor lett meghívva.

Egy adott kifejezés (például 2010-03-03 + 2 days) ismételt felhasználása már nem számít bele a fenti technikai korlátba.

Sajnos az így felhasznált karakterek száma nem kérdezhető le.