2017-06-12 2 views
-1

Beim Erstellen einer App ist es am besten, die Module zu laden, aber auch als Batch-1-Datei zu laden, wenn Sie sie benötigen. Require.js unterstützt asynces Lazy Loading, aber nicht als Batch, sondern http2 unterstützt Batch. Werden sie sich irgendwann in der Zukunft vereinigen?Wie wird require.js in Zukunft mit http2 arbeiten?

Weiß jemand?

Dank

+0

Warum sollte das W3C oder WHATWG mit require.js von "irgendeinem Kerl" (mit gebührendem Respekt) vereinheitlichen? Nicht jeder will, braucht oder benutzt es. – Rob

+0

Ich meine, wird require.js die Verwendung von Batch-Download in http2 in der Zukunft unterstützen? – omega

Antwort

1

HTTP/2 nicht "Batch" Download hat, da es automatisch nicht in der Lage zu Charge zusammen mehr Dateien zum Download bereit ist.

Was HTTP/2 über HTTP/1.1 hat, ist Multiplexing und HTTP/2 Push.

Mit Multiplexing können Clients wie Browser eine fast unbegrenzte Anzahl von gleichzeitigen Anfragen ausführen - während sie mit HTTP/1.1 nur 6 gleichzeitige Anfragen ausführen können.

Mit HTTP/2 Push kann ein Server mehrere mit einer primären Ressource verknüpfte Ressourcen an den Client senden.

Multiplexing ist im Protokoll integriert, so dass weder auf dem Client noch auf dem Server eine Konfiguration erforderlich ist. HTTP/2 Push muss auf dem Server konfiguriert werden.

require.js wird von diesen beiden Funktionen von HTTP/2 profitieren, aber es ist nicht so, dass require.js muss sie "unterstützen".

Wenn require.js eine HTTP-Anforderung zum Herunterladen eines Moduls erstellt, wird diese als normale HTTP-Anforderung angezeigt. Wenn require.js 10+ Module herunterladen muss, hätte es mit HTTP/1.1 diese Anfragen gemacht, aber die Browser-Infrastruktur hätte nur 6 dieser Anfragen gleichzeitig machen können und dann auf eine Anfrage gewartet, bevor sie gesendet wurde mehr Anfragen; Mit HTTP/2 können alle Anfragen gleichzeitig gestellt werden.

Mit HTTP/2 Push, require.js kann die Anfrage für ein Modul, und der Server kann herausfinden, dass es auch N andere Module benötigt (der Server wird das Anfrage-Muster von früheren Anfragen lernen, oder eine Konfiguration, die teilt ihm mit, was die anderen Module sind), und der Server wird HTTP/2 die anderen Module zum Client schieben.

In beiden Fällen wird require.js automatisch von der Aktualisierung auf HTTP/2 profitieren.