Ist die Javascript-Größe ein Performance-Problem, nachdem es zwischengespeichert wurde?

9

Ich schreibe ein Projekt, das einige ziemlich große JS-Bibliotheken einschließlich jquery UI verwenden wird. Das Projekt wird jedoch innerhalb eines Intranets ausgeführt. Daher ist die Downloadzeit für mich kein Problem, und die meisten Leute sollten die Bibliotheken nur einmal herunterladen müssen, da ich davon ausgehe, dass sie im Cache des Browsers verbleiben.

Meine Frage ist, wie moderne Browser (IE9, FF5 usw.) die Verarbeitung des Javascript-Codes handhaben. Ich stelle mir vor, irgendwann ist es kompiliert, aber wird dies bei jedem Laden der Seite getan, oder wird der kompilierte Code auch zwischengespeichert. Wenn ja, wird es auch nach dem Schließen des Browsers zwischengespeichert?

Diese Web-App läuft möglicherweise auf einigen tragbaren Geräten mit geringem Stromverbrauch, so dass ich einigermaßen effizient sein wollte. Ich wollte alle Javascript-Dateien in eine große Datei zusammenführen, die auf jeder Seite der App verlinkt ist.

Aber abhängig davon, wie viel Arbeit der Browser machen muss, um alle JS zu verarbeiten, frage ich mich, ob ich sie aufteilen sollte, damit nicht alle Seiten alle JS laden müssen. Offensichtlich ist das aber mehr Arbeit.

Irgendwelche Gedanken oder Informationen würden geschätzt werden. Danke.

    
C.J. 29.07.2011, 13:22
quelle

7 Antworten

5

Ja, die JavaScript-Größe ist immer noch ein Leistungsrisiko, wenn sie aus folgenden Gründen zwischengespeichert wird:

  • Die meisten Browser speichern den von ihnen ausgeführten Byte-Code nicht zwischen. Daher muss das Skript bei jedem Laden der Seite erneut geparst werden. Moderne Browser tun dies schneller, aber es kann immer noch ein Problem für sehr große JavaScript-Dateien sein.
  • Der Code in Ihren JavaScript-Dateien wird bei jedem Laden der Seite tatsächlich ausgeführt. Selbst wenn Browser den Byte-Code zwischenspeichern, müssen sie das JavaScript immer noch jedes Mal erneut ausführen, wenn die Seite geladen wird.
  • Aus Gründen, die Sie nicht beeinflussen können, erhalten Sie möglicherweise eine niedrigere Cachespeicherrate als erwartet. Benutzer können ihren Cache deaktivieren oder so viele Websites besuchen, dass Ihre Dateien schnell aus dem Cache gelöscht werden. Sie sollten Ihre Protokolle prüfen, um sicherzustellen, dass das Verhältnis von Seitenaufkommen zu Laden von JavaScript-Dateien hoch ist.
  • Das Laden einer Datei aus dem Cache ist normalerweise ziemlich schnell, aber nicht immer trivial. In einigen Fällen kann es bis zu 200 ms dauern.

Sie können einen ziemlich schnellen Test durchführen, um eine ungefähre Vorstellung davon zu bekommen, wie lange Ihre Skripte zum Analysieren und Ausführen benötigen:

%Vor%

Stellen Sie sicher, dass Sie alle von Ihnen unterstützten Zielbrowser testen. JavaScript Parse und Ausführungszeit kann zwischen verschiedenen Browsern stark variieren. Stellen Sie außerdem sicher, dass Sie auf einem Computer testen, der so langsam ist wie Ihre Benutzer. Wenn Sie Leistungsprobleme finden, müssen Sie sie wahrscheinlich in einem Profiler lösen. Die Minimierung wird nicht viel zur Verbesserung der Parser- und Ausführungszeit beitragen.

    
Annie 29.07.2011, 15:02
quelle
0

Reduzieren Sie Ihre Javascript-Dateien. Dies nimmt weniger Platz in Anspruch. Außerdem ist Javascript eine interpretierte Sprache, daher wird es niemals kompiliert.

Ссылка )

    
Dismissile 29.07.2011 13:27
quelle
0

Es ist nicht wirklich wichtig, wie viel Code vorhanden ist, aber wie schwer er ist. Heutzutage können Browser JS ziemlich schnell ausführen. Versuchen Sie einfach, Google Mail forexample (das ist fast alles über Javascript) mit IE7 und dann mit IE9 oder Chrome.

    
Pehmolelu 29.07.2011 13:30
quelle
0

Sie müssen sich die JavaScript-Engines ansehen, die jeder Browser verwendet, um ein besseres Verständnis zu erhalten. Google Chrome verwendet beispielsweise V8: Ссылка

Auch das kann Ihnen helfen, viel besser zu verstehen:

Wie führen Browser JavaScript aus

?

Wie gehen Browser mit JavaScript um?

    
b01 29.07.2011 13:33
quelle
0

Lesen Sie diesen Artikel , eine sehr gute Quelle dafür helfen Sie Ihre JavaScript-Leistung zu optimieren.

    
abhijit 29.07.2011 13:41
quelle
0

Wenn Ihr Anwendungsfall nur in einer Intranetumgebung stattfindet, ist die Codegröße im Vergleich zu anderen Optimierungstechniken kein Problem für Sie. Vermutlich sind Ziel-Browser ziemlich neu und verfügen über JS-Engines, die mit modernen, vollständigen Javascript-Sites umgehen können. In diesem Fall wirkt sich die Code-Größe nicht wirklich auf die Geschwindigkeit aus, da die Code-Analyse im Vergleich zur Ausführung so wenig Aufwand erfordert . In älteren Browsern kann es jedoch einen kleinen Geschwindigkeitsunterschied im Vergleich zu einer optimierten Codelänge geben, da sie nie dazu gedacht waren, JavaScript auszuführen, das Tausende und Abertausende von Codezeilen enthält.

Im Vergleich zur Codeausführungsoptimierung wird die Codelängenoptimierung wahrscheinlich nicht einmal für den Endbenutzer bemerkbar sein. Sie können vielleicht ein paar ms durch Komprimieren des Codes klopfen, aber die meisten modernen Engines erstellen eine "Map", wenn sie den Code analysieren, so dass zur Ausführungszeit die Position einer Funktion, Variable usw. nicht wirklich wichtig ist. Machen Sie sich also mehr Gedanken über die allgemeine Code-Optimierung als über die Bibliotheksgrößen usw.

Sie können V8-Interna hier

hören     
zatatatata 29.07.2011 14:32
quelle
0

Ich habe nie darüber nachgedacht, aber ich kann nicht wirklich, warum nicht alles in einer großen Datei bündeln würde nicht helfen * - die Javascript-Build-Tools, die ich weiß, konzentrieren sich darauf, genau dies zu tun.

* es sei denn, Sie haben ein großes Modul, das nur selten verwendet wird. In diesem Fall solltest du es getrennt halten, damit nicht jeder es benutzen muss.

    
hugomg 29.07.2011 15:10
quelle

Tags und Links