Wikikönyvek:Technikai korlátok


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

Mit jelent a technikai korlát?

A Wikikönyvek 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?

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?

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?

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 - NewPP limit jelentés

  • Preprocessor node count: a preprocessor csomópont száma: 2281/1000000
  • Post-expand include size: a beillesztett sablonok mérete: 41368/2048000 bytes
  • Template argument size: a sablonok paramétereinek mérete: 18686/2048000 bytes
  • Highest expansion depth: a sablonok legnagyobb kibontási mélysége: 10/40
  • Expensive parser function count: a költséges elemzőfüggvény-hívások száma: 0/500

A korlátok

A beillesztett sablonok mérete

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

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

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

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:

  • Elemzőfüggvénynek##ifexist|#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

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.


Jegyzetek