2010-06-09 10 views
24

Ich bin den Aufbau einer Website, die derzeit Javascript aus mehreren Quellen verwendet:Besser kombinierbar & Javascript minimieren oder Google CDN verwenden?

Gruppe 1: Google Maps API v3 (von Google gehostet)
Gruppe 2: jQuery & swfobject (hosted auf Google CDN)
Gruppe 3: Mehrere jQuery-Plugins und nicht-jQuery JavaScript-Dateien (auf meinem Server gehostet)

I Justin Etheredge des Werkzeugs bin mit SquishIt alle JavaScript fil zu kombinieren und minify Es sind Hosts auf meinem Server (Gruppe 3).

Ich frage mich, ob die Website für Benutzer schneller "fühlen" würde, wenn ich die Dateien in (Gruppe 2) lokal hosten würde, so dass sie mit allen anderen Dateien in (Gruppe 3) kombiniert werden können und nur einen benötigen HTTP-Anfrage für Gruppen 2 & 3. Das würde bedeuten, dass ich die benefits of the Google CDN jedoch nicht bekomme.

Hat jemand einen Rat in dieser Angelegenheit?

EDIT: Auch, wie würde ich zu einer Zahlen basierten Antwort auf diese Frage kommen? Ist das möglich?

Antwort

6

Ich denke, es hängt davon ab, wie wahrscheinlich es ist, dass Ihre Benutzer bereits die Google-Cdn-Datei zwischengespeichert von einem Besuch einer anderen Website, die das gleiche Asset verwendet.

Meine Meinung ist, dass es besser ist, CDN zu verwenden, da es minimiert ist und es ziemlich wahrscheinlich ist, dass die Datei überhaupt nicht heruntergeladen werden muss. Kombiniere und reduziere alles andere.

Ich wäre interessiert zu wissen, das globale Cache-Hit-Miss-Verhältnis für diese Google CDN-Bibliotheksdateien.

3

Verwenden eines CDN und Kombinieren/Verkleinern dienen verschiedenen Zwecken. Wenn Sie beide verwenden können.

  1. Javascript-Dateien Kombinieren - reduziert die Anzahl der HTTP-Anfragen von einer Seite
  2. Verkleinerungs Javacsript Dateien - reduziert die Dateigröße
  3. ein CDN - verbessert die Latenz.

Wenn Sie einen Weg, um sowohl die Verwendung finden können, seine große

Obwohl Javascript-Dateien Die Kombination kann in eine komplexere Angelegenheit drehen, als sie nur minifying.

können Sie andere CDNs verwenden, wenn Sie (Amazon Cloudfront)

wollen
3

Wahrscheinlich wird nicht viel Unterschied machen.

Die Javascript-Dateien sind klein und statisch und werden von den Browsern der Benutzer zwischengespeichert. Wenn Sie die im Google CDN gespeicherte Kopie verwenden, müssen Ihre Benutzer das Skript möglicherweise nicht beim ersten Besuch Ihrer Website herunterladen.

Mit der Google-Kopie führen Sie jedoch auch eine Abhängigkeit von Google ein. Wenn ihre Server ausfallen (was sie wahrscheinlich nicht tun werden - zumindest nicht in naher Zukunft), funktioniert Ihre Site möglicherweise nicht richtig.

1

Ich kombiniere, reduziere (using closure) und benutze (akamai) CDN. Aber der wichtigste Tipp für Web-Performance ist:

  1. use never expire cache
  2. asynchroner Laden: Sie können dieses Skript verwenden, um Ihre Externen js-Dateien zu laden

    (function() { 
        setTimeout(function(){ 
        var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true; 
        sc.src = 'youfile'; 
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(sc); 
        },0); 
    })(); 
    
Verwandte Themen