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:- Várjuk, amíg a dokumentum elkészült, mielőtt a többi a mi kódot.
- Közvetlenül azután, hogy a DOM készen jelölje ki az összes input elemeket az oldalon az osztály dátum.
- 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.
- 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.
- 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.
- 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.