2016-05-12 5 views
8

Ich stelle mir vor, ein beliebter Anwendungsfall für wird für das Laden eines "Hauptmoduls" sein, von dem alle Abhängigkeiten eines Projekts durch einen Baum von import Anweisungen aufgelöst werden. Im Web scheint dies jedoch zu einem Lade-Engpass zu führen, da der Browser nicht wissen konnte, welche Skripte heruntergeladen werden müssen, bis er die zugehörigen Abhängigen für import analysiert hat. Vergleichen Sie dies mit einer Situation, in der alle Skripte eines Projekts in separaten <script> Elementen in der ursprünglich bereitgestellten HTML-Datei referenziert werden. Die Skripte können alle parallel heruntergeladen werden, während und nachdem der HTML-Code analysiert wurde.<script type = "modul"> lade leistung

Wird <script type="module"> einen Lade-Engpass erzeugen? Können mehrere Elemente auf einer Seite Abhängigkeiten füreinander bereitstellen, sodass der Browser JavaScript nicht unbedingt herunterladen und parsen muss, um herauszufinden, was als nächstes heruntergeladen werden soll?

Ich nehme an, das wäre ein Anwendungsfall für HTTP/2 PUSH_PROMISE? Der Server müsste die JavaScript-Dateien statisch analysieren und ihre Abhängigkeiten im Voraus bestimmen. Aber selbst wenn der Browser aufgefordert werden könnte, die Module frühzeitig herunterzuladen, frage ich mich, ob die gedrückten Module noch nicht ausführen würden, bis import geparst wurde. Zumindest mit <script>, ich weiß, dass sie bei der ersten Gelegenheit ausführen würden.

+0

Ich stelle mir vor, dass HTTP2 verwendet werden könnte, um einen großen Teil der Probleme zu mildern. Aber ich bin sehr neugierig auf eine Antwort auf diese Frage. –

+0

Keiner der Browser unterstützt derzeit ES6-Module.Denkst du nicht, dass es für diese Frage ein bisschen zu früh ist? –

+0

@Gothdo Im Gegensatz dazu, wenn diese Frage nicht bereits beantwortet wurde, und ES6-Modul-Auflösung ist eine De-Optimierung, wäre es ein wenig zu spät; Standardisierungs-, Implementierungs- und Adoptionsaufwand würden für eine Technologie ausgegeben werden, die von dem, was wir bereits haben, übertroffen wird (zumindest in Hochleistungs- Produktionsszenarien). Ich hoffe, dass hier einige Gedanken investiert wurden und ein Prototyp beweist, dass '

Verwandte Themen