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.
Ja, die JavaScript-Größe ist immer noch ein Leistungsrisiko, wenn sie aus folgenden Gründen zwischengespeichert wird:
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.
Reduzieren Sie Ihre Javascript-Dateien. Dies nimmt weniger Platz in Anspruch. Außerdem ist Javascript eine interpretierte Sprache, daher wird es niemals kompiliert.
Ссылка )
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:
?Lesen Sie diesen Artikel , eine sehr gute Quelle dafür helfen Sie Ihre JavaScript-Leistung zu optimieren.
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örenIch 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.
Tags und Links javascript jquery jquery-ui