it-swarm-eu.dev

Mám zkombinovat soubory js / css do jednoho souboru?

Obě YSlow a Google's Page Speed adds on doporučuje kombinovat skripty (a styl) soubory do jednoho souboru každý snížit počet HTTP požadavků, a já určitě vidím bod, když soubory skriptu jsou konzistentní na celém webu, ale pro webovou aplikaci, která má na webu různé požadavky.

Způsob, jakým to vidím, je několik možností:

  1. Kombinujte všechny soubory, které se používají na webu, a každá stránka dostane stejný kombinovaný soubor - nevýhodou je nepoužitý obsah, který skript skrývá (a těžší první načtení (také se znovu načte, když se změní skript komponenty))

  2. Kombinovat soubory na stránce - nevýhodou je, že každá stránka s různými požadavky získá jiný kombinovaný soubor (těžší první načtení pro každý typ stránky)

  3. Ignorujte striktní interpretaci doporučení „pouze pro jeden soubor“ a nechte stránku načíst do více souborů podle potřeby, s mezipamětí doufejme, že negujete počet požadavků HTTP v obecném případě - nevýhodou je počet požadavků HTTP na každé stránce.

Myšlenky?

11
Cebjyre

Varianta 2 je nejhorší; to znamená, že každá stránka s jinou kombinací potřebných skriptů JS povede k požadavku HTTP. Zhorší výkon mnohem.

Varianta 1 je nejlepší. Většina uživatelů nakonec navštíví většinu „typů“ stránek na vašem webu, takže je stále výhodné kombinovat vše do jednoho souboru, s výjimkou velkých souborů JS, které jsou potřebné na několika málo zřídkakdy navštívených stránkách.

První přístup na stránku může být pomalejší než u různých souborů, ale stále stojí za to udělat, protože každý druhý přístup na stránku použije globální JS v mezipaměti.

Jeden tip však; sloučit je automaticky, pokud ještě nejste!

11
Thomas Bonini

Obecně kombinuji „globální Javascript“ - jQuery a běžné pluginy - do jediného souboru a poté v případě potřeby přidávám další pluginy jako samostatné soubory.

Například jeden web, na kterém spouštím mnoho stránek, obsahuje datové tabulky, takže mám global.js s jQuery, DataTables a SuperFish (pro mé menu). Na webu jsou dvě stránky, které používají „lightbox“, takže pro tyto dvě stránky mám samostatný skript.

Pokud jde o CSS, podávám pouze jeden soubor pro celý web a snažím se učinit CSS co nejobecnější - většina stránek obsahuje pouze několik jedinečných prvků CSS.

4
DisgruntledGoat

Nenavrhoval bych je všechny kombinovat. Pokud používáte společnou knihovnu, můžete využít CDN k dodání vašich skriptů javascript. Poté můžete využít mezipaměť prohlížeče (za předpokladu, že jiné weby používají stejný CDN) a distribuované doručení. Microsoft a Google každý má řešení (já jsem také upřímně nepoužil, ale určitě začnu) a mohou existovat i další. Na související poznámku má SO tuto otázku:

Kdy prohlížeč automaticky vymaže mezipaměť JavaScript?

a první odpověď je plné zlato.

1
Larry Smithmier

Přestože se rozhodně doporučuje používat co nejméně souborů, můžete zjistit, že máte rozdělení mezi funkcemi, které jsou vyžadovány při načítání stránky, a funkcemi, které lze odložit pomocí asynchronního načítání.

Pokud lze dostatek vaší JS do druhé kategorie, můžete zlepšit vnímanou počáteční rychlost načítání stránky a vytvořit tak pro své uživatele lepší zážitek.

1
JasonBirch