Miért nem használja az előre beállított Download

Preload (vagy előfeszítő) az új szabvány. teljesítményének növelésére tervezték, és a fejlesztő pontosabb ellenőrzése alatt a terhelési források. Ez ad a fejlesztők képesek létrehozni egy egyéni boot sorrendet és logikai elkerüli a teljesítmény problémák okozta script letöltők.

Cikkek ebben a témában a SmashingMagazine:

preload ( ) Van egy kijelentő mintavételi irányelvet.

Nem vagyunk egy ilyen lehetőséget?

Valami hasonló van. Úgy tűnt, az interneten sokáig, és a legtöbb böngésző által támogatott. Néhány évvel ezelőtt, a Chrome bevezetett és . Tehát mi az újdonság az előfeszítő? Mitől különbözik a többi irányelvek? Mindannyian mondani a böngésző a minta források nem?

Igen van, de jelentős különbségek vannak közöttük. Ezek a különbségek csak szükség, hogy kialakult egy új irányelv, feladatok, back-törés a régi.

prefetching ( ) Van egy irányelv, amely jelzi a böngésző, hogy hozza egy erőforrás, hogy szükség lesz az átmenet során a következő oldalra. Ez azt jelenti, hogy az erőforrás lesz mintában rendkívül alacsony prioritású (mert a böngésző tudja, hogy a forrásokat az aktuális oldal sokkal fontosabb, mint a források, hogy szükség lesz a következő). Ez azt jelenti, hogy a Fő célja ennek a gyorsulás prefetchinga a következő oldal betöltését, nem a jelenlegi helyzetre.

Subresurs ( ) Eddig tervezték, hogy megfeleljen a kihívásoknak a jelenlegi oldalon, de a legtöbb kérdés hatástalan. Mivel a fejlesztő nem tudja beállítani az erőforrás-használat prioritás, a böngésző (vagy inkább a Chrome és a böngésző alapú króm) letölti őket egy meglehetősen alacsony prioritást a legtöbb esetben ez azt jelenti, hogy a kérelmet az erőforrás körülbelül ugyanannyi ideig, mint anélkül subresursa.

Hogyan elérni a legjobb előfeszítő?

Előretöltés úgy tervezték, hogy az aktuális oldalon, valamint subresurs, de egy kicsi, de fontos különbség. Van elôterhelési mint tulajdonság. amely lehetővé teszi, hogy a böngésző olyan dolgokat, amelyek lehetetlen prefetchingom és subresursom:

  • A böngésző kérni a megfelelő erőforrások prioritást, amellyel összhangban fognak betölteni - nem lesz késés jelentős forrásokat vagy másodlagos merevlemez szivattyúzás.
  • A böngésző biztosítják irányelvek betartását az erőforrás tartalmát biztonsági politika, és nem megy a megbízott szerver.
  • A böngésző küldhet megfelelő Accept fejléc alapján az erőforrás típusát (például kép / webp a kép minta).
  • A böngésző ismeri a forrás típusát, és ezért lehet meghatározni, hogy lehet használni a következő kéréssel ugyanahhoz az erőforráshoz.

Előretöltés az is jellemzi, hogy van egy működőképes onload esemény (legalábbis Chrome ebben az esetben nem működik a másik két érték rel).

Továbbá, előfeszítő nem blokkolja az onload esemény az ablakon. Persze, kivéve azokat az eseteket, amikor a betöltött erőforrás kér egy másik forrás, a blokkoló esemény.

A Mindezen jellemzőket végrehajtó egy sor lehetőséget korábban nem volt elérhető számunkra.

Nézzük meg őket külön-külön.

Letöltés „későn észlelt” források

Most van egy eszköz, hogy elmondja a böngésző: „Hé, a böngészőben! Itt látható a forrás meg kell bizonyosodni arról, úgyhogy töltse le most. "

A kód, ez a mondat a következő:

Mint egy attribútum típusát jelzi letölthető erőforrás, akkor a következő értékeket:

Teljes lista értékei van a leírás.

Ugró attribútum értékek vagy hibás megbízás egyenértékű XHR-kérelmet, amelyben a böngésző nem tudja, hogy úgy dönt, ahol a mintavétel történik alacsony prioritású.

Korai betöltés betűtípusok

Az egyik legnépszerűbb fajta „később észlelt kritikus erőforrások” web betűtípusok. Egyrészt, a legtöbb esetben ezek a kritikus tételére szöveget az oldalon (amíg nincs tulajdonságait font-kijelző kerül végrehajtásra). Másrészt, a betűtípusok található mélyen a gyomrában a CSS, és akkor is, ha a böngésző preloader elemzési CSS, akkor nem biztos, hogy szükség lesz, amíg ők rendezni ügyüket kötődés a specifikus szelektor, DOM csomópontok. Bár elméletileg böngészők foglalkozni vele, egyikük nem megtenni, mert ez vezet a hamis letöltések esetekben, amikor a stílus nyilatkozatot átírható a következő sorokat a CSS.

Általánosságban elmondható, hogy bonyolult.

De tudtuk megkerülni ezt a komplexitást azáltal, hogy egy irányelv font előfeszítő hogy pontosan mire van szüksége. Például:

Egy pont világossá kell tenni: meg kell adni egy attribútumot crossorigin amikor kiválasztja betűtípusok, úgy, ahogyan az egy névtelen CORS módban. Igen, akkor is, ha a betűk ugyanazon a gépen, mint az oldal. Sajnos.

A type attribútum biztosítja előfeszítő az erőforrás csak a böngészők, amelyek támogatják ezt a betűtípust. Abban a pillanatban, előfeszítő csak támogatja a Chrome és tökéletesen támogatja WOFF2, de a jövőben előfeszítő jelenhet meg más böngészők, és nem tudjuk garantálni, hogy ezek WOFF2 támogatást. Ugyanez vonatkozik a többi erőforrást, hogy már előre fel van töltve, és hogy nincs abszolút támogatást a böngészőben.

Dinamikus terhelés nélkül kezdő

A következő érdekes forgatókönyvet, amely elérhetővé válik, akkor letölti a kívánt forrás, amit nem fog azonnal elindul. Például, ha azt szeretnénk, hogy végre egy script egy bizonyos időszakban a lét a lap anélkül felett a script (azaz anélkül, hogy a lehetőséget, hogy egy funkció hozzáadása runNow ()).

Most nagyon korlátozott a választott módon teheti ezt. Ha csak helyezze be a script a megfelelő helyre, hogy végre, a böngésző kell, hogy először töltse le a szkript fut, hosszabb időt vehet igénybe. Akkor lehet letölteni a forgatókönyvet előre a XHR, de a böngésző nem fogja megtenni, mert az erőforrás nem került letöltésre az azonos típusú, amely igyekszik használni.

Szóval mit lehet tenni?

Anélkül előfeszítő kicsit. Bizonyos esetekben, akkor végezze el a tartalmát a script segítségével eval (). de ez nem mindig kivitelezhető, és hordozza mellékhatásokat. De előfeszítő minden lehetséges!

Kezdheti meg az elején az oldal betöltésekor, arra a pontra, ahol szeretné futtatni a szkriptet (de ha nem biztos benne, hogy ez a kód nem zavarja a rakodási egyéb, a kritikus erőforrások). Most, amikor meg kell futtatni, csak helyezze be a script tag, és ez elég.

Aszinkron rakodó jelölés

Egy másik jó hack, hogy használja a onload felvezető hogy hozzon létre egy látszatát aszinkron rakodó közvetlenül a jelölést. Scott Jel első kísérletezett vele, mint egy része a loadCSS könyvtárban. Tudjuk használni az alábbi rövid kód:

És ez elég ahhoz, hogy az aszinkron betöltés stílusokat. Scott szintén egy oldalt, amely bizonyítja ezt a képességet.

Úgy is működik aszinkron szkripteket.

De azt mondja, hogy már van