MODx nem inicializálni minden egy sorban a ()

MODx nem inicializálni minden egy sorban a ()

Az alábbi példák azt mutatják kétféleképpen inicializálni az elem „dátumválasztó”. Az első út lesz „inicializálása minden egy sorban”, míg a második példa fogja használni az elv „inicializálni a megfelelő időben”

Particionálás példa

Hogy érthetőbb az ötlet, megpróbálom megmutatni az első kód mintát, majd elmagyarázza, mi történik benne. Fogjuk használni a következő HTML jelölés a kódot.

ÉN használ Twitter Bootstrap létrehozni UI szalonképes megjelenés és ez az, amiért további osztályok a fenti kódot.
Kód egy egyszerű űrlap különböző bemeneti elemek. Formájában fogunk különböző adatmezők akarjuk inicializálni a jQuery UI datepicker widget.

Inicializáljon minden egy sorban

A következő jQuery kódot ismerős sok töredék, hogy meg kell látni az interneten az osztályban, a saját alkalmazásokat.

ÉN használ egy kis moment.js könyvtár dolgozó dátumokat. Elég kényelmes könyvtár gazdag a különböző funkciókat.

Fogjuk megérteni a kódot:
  1. Várjuk, amíg a dokumentum elkészült, mielőtt a többi a mi kódot.
  2. Közvetlenül azután, hogy a DOM készen jelölje ki az összes input elemeket az oldalon az osztály dátum.
  3. jQuery hallgatólagosan végighaladni belső elem készlettel, és inicializálja az egyes segítségével datapicker jQuery UI modult.

Előnyei a technika

  • Amikor egy felhasználó rákattint bármelyik input.date elemek, akkor már telepítve van, és ezért reagál nagyon gyorsan.

Hátránya ennek a technikának

  • A kód előre hajlandóság DOM mielőtt ő lesz képes kiválasztani elemeket. Jó lenne, ha jönne az idő között, amikor jQuery végez, és amikor a DOM készen áll.
  • A választó nem Konteksa, azért nézi az egész DOM bemeneti elemek az osztályban dátumot. Ez lesz az optimálistól elmaradó választó, mivel nincs határa a határértékek vagy olyan kontextusban, ischotsya.
  • Kód elindítja az összes elem (látens ciklus) van szüksége, vagy sem. Természetesen hirdetések készen áll, ha szükség van rájuk, de ha szükség van, ha az összes ezt a kódot az első oldalon?
  • Egy rakás kódvégrehajtáskor, ami egyáltalán nincs szükség, amíg az oldal teljesen be nem töltődik. Mindez befolyásolja a sebességet a berakodás oldalakat, nagyon fontos a felhasználók számára.

Az inicializálás a megfelelő időben

A következő kódrészlet egy kicsit eltér az előző példában, de az eredmény ugyanaz, és plusz vagy mínusz más. Nézd meg alaposan, és találd meg a különbségeket.


ÉN használ toastr könyvtár megjelenítéséhez inicializálása üzenet elem jelző. A könyvtárat Hans Fj? Llemark és John Papa.

Csakúgy, mint tettük az előző példában, mi kell érteni, hogy mi folyik a kódot, és mi az előnye-hátránya ennek a technikát.
  1. Azonnal létre egy eseménykezelő várni, mielőtt inicializálása a felhasználó belép a dátum - datepicker. Ez lehetővé teszi a kód cselekedni után azonnal jQuery az oldalon, még mielőtt kész lesz DOM. Nem kell várni a DOM készen, mert átruházhatja a rendezvény keretében a dokumentumot - dokumentumot.
  2. Nem inicializálni minden input.date elemek, kövesse az esemény középpontjában. Ez az esemény kerül kiosztásra felfelé (buborék) a DOM fában, amíg el nem éri a dokumentumot - dokumentumot, és ezen a ponton egybeesik jQuery meghatározni, hogy a fókuszált objektum tárolt metaadatokat is. Az, hogy megtaláljuk a megfelelő metaadatok nagyon gyors, mert le csak a „bolond” választó egy DOM-elem volt a hangsúly, és nem minden a DOM fában.
  3. A fejlett választó input.date keres egy elemet, amely nem hasDatepicker osztályban. Ha egyezik, akkor a DOM elem visszaállítása. Ezt követően, ha egy tétel felkereste a fókuszt, majd később a választó nem egyeznek meg, mert jQuery egészítette hasDatepicker osztály létrehozásakor egy widget is.

Előnyei a technika

  • Nagyon gyors letöltési sebességet, mert csak hozzá egy eseménykezelő dokumentum dokumentum néhány metaadat, amely később felhasználható
  • Nincs hajlandóság az Ön Select jQuery DOM
  • Nincsenek rejtett ciklus inicializálni az elemek
  • Csak terméket kell használni inicializálja, így nincs végrehajtását redundancia
  • Inicializált az elemeket, ami a hangsúly, ha
  • Ez a technika is működik dinamikusan hozzáadott mezők „lépésének dátuma”, hozzá a DOM

Hátránya ennek a technikának

  • Vannak burkolatok, amelyek középpontjában eseményt kell felmászni a dokumentumot és jQuery dokumentum metaadatokat, hogy ellenőrizze a választó elem a kérést, de ez csak egy harmatcsepp, mint a vizsgált csak egy eleme.

következtetés

Állandóan korlátozni kívánja az összessége az inicializálás. Ez akkor hasznos, ha elkezd gondolkodni az inicializálási késedelem addig a pillanatig, amikor arra szükség van, vagy közvetlenül előtte azt a pillanatot. Ezzel, akkor az idő után a jQuery és várakozás nélkül a DOM kész, akkor használja ezt az értékes időt során oldalletöltés. Ezen kívül lesz a páratlan kóbor jQuery szelektor, nagyon gyors, mert csak azt vizsgálja, hogy egy elem került előtérbe, és nem minden a DOM fában.

Nagyon szépen köszönöm a segítséget.

Kapcsolódó cikkek