12 způsobů, jak říct své kočce, že je milujete v jazyce, kterému rozumí

Pokud na své stránce používám velkou knihovnu Javascript, jak se mohu ujistit, že to neovlivní používání stránky uživatelem?

Můžete dělat 4 věci.

  1. Minifikujte svůj soubor JS. Tím se odstraní všechny komentáře a mezery, aby se zmenšila jejich velikost.
  2. Zkombinujte své soubory JS na každé stránce tak, aby existoval pouze 1 soubor.
  3. K odeslání souborů použijte balíček gzip. Díky tomu budou ještě menší
  4. Na konec stránky vložte bezprostředně Javascript, který se nevyžaduje, aby se načetl na konci. To umožní uživateli zobrazit a používat stránku ještě před úplným načtením JS.

A někteří další lidé navrhli:

  • Apache automaticky zvládne kompresi (a ukládání komprimovaného obsahu do mezipaměti), což výrazně zjednodušuje správu souborů
  • Díky tomu, že je JavaScript správně vybaven mezipamětí, přinese velké výhody.
  • Zástupné domény (s více URI) umožní více souběžných připojení. Předběžné načítání není jen pro obrázky /
  • Existuje více věcí, které můžete udělat, a lepší způsoby, jak toho dosáhnout. Apache automaticky zvládne zhroucení (a ukládání komprimovaného obsahu do mezipaměti), což výrazně zjednodušuje správu souborů. Správná mezipaměť JavaScriptu přinese velké výhody. Zástupné domény (s více URI) umožní více souběžných připojení. Předběžné načítání není jen pro obrázky /

Pokud používáte běžné knihovny (například jQuery, Prototype nebo Dojo), můžete soubor stáhnout do Google a nechat je sloužit, což vám dává několik výhod:

  • Nemusíte se bát minifikace a zipování atd
  • Není to vaše šířka pásma
  • Tyto soubory pocházejí z jiné domény, takže můžete (alespoň částečně) obejít limit 2 paralelních požadavků na název hostitele
  • Pokud máte štěstí, uživatel již navštívil jiný web, který používal stejnou knihovnu od stejného poskytovatele, takže ji již má v mezipaměti prohlížeče.

Poznámka: Verze, kterou požadujete, může mít velký dopad na vlastnosti ukládání do mezipaměti: žádost o jQuery 1.4.2 vám poskytne soubor, který lze uložit do mezipaměti po dobu jednoho roku, ale 1.4 lze uložit do mezipaměti pouze na hodinu.

  • 1 + 1 pro CDN a scriptsrc.net, aby to bylo ještě jednodušší;)
  • 1 Můžete rozšířit svoji „notu“? Proč je rozdíl v době ukládání do mezipaměti?
  • 2 @ theycallmemorty: I když jsem nekontroloval dokumenty, předpokládal bych, že je to proto, že zadáním 1.4.2 jste velmi konkrétní ohledně verze, kterou chcete, zatímco žádáte o 1.4, v zásadě říkáte „dej mi nejnovější verze pod 1,4 ", takže ji neukládají tak silně do mezipaměti.
  • Za zmínku stojí také to, že Microsoft zpřístupňuje na svém CDN některé knihovny JS (jQuery a některé specifické pro MS), které také podporují https (což mnoho jiných CDN skriptů nepodporuje) asp.net/ajaxlibrary/cdn.ashx

Můžete vložit celou knihovnu do jednoho souboru js a soubor zkomprimovat. Ve skutečnosti to však záleží pouze na prvním načtení stránky. Poté bude váš soubor js uložen do mezipaměti v prohlížeči, zejména pokud nastavíte vypršení platnosti mezipaměti dostatečně dlouho. Proto jakýkoli následný zásah již nenačte váš soubor js.

  • +1 můžete umístit celou knihovnu do jednoho souboru a zkomprimovat ji. To mě nenapadlo.

Kromě výše uvedených odpovědí můžete pomocí Google Closure Compiler automaticky komprimovat a optimalizovat JS při integraci s dalšími knihovnami třetích stran (jQuery, YUI, mootools atd.)

Pokud máte několik prvků stránky a přístup k samostatné doméně, můžete zvážit hostování všech statických souborů, včetně velkého souboru JS ve druhé doméně.

Jak poznamenává Steve Souders ve svém blogu High Performance Web Sites -

... v některých situacích stojí za to vzít spoustu zdrojů, které se stahují na jednu doménu, a rozdělit je na více domén. Tomu říkám shardování domény. Tímto způsobem lze paralelně stáhnout více zdrojů a snížit tak celkovou dobu načítání stránky.

jinde píše ..

Prohlížeče otevírají omezený počet připojení na doménu ... Rozdělení nebo dělení požadavků na dvě domény, na rozdíl od jedné domény, vede k rychlejší stránce, zejména v IE 6 a 7

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?

užitečné informace