2017-02-18 2 views
0

Ich baue Mobil erstes und ich verwende winzige Gerüste (unter 10kB), die ich inline in index.html auf HTTP-Anforderung zu speichern.Javascript inlined zwischen Script-Tags vs src DATA URI UTF-8 mit Prozent-Codierung

ich seit einigen Tagen sah jetzt und es scheint, wie alle anderen, die Javascript es so inlines tut:

<script>UGLIFIED JAVASCRIPT</script> 

Ich mache es wie folgt aus:

<script src="data:application/javascript;utf8, UGLIFIED PERCENT-ENCODED JAVASCRIPT"></script> 

Sie Prozent Codierung machen sagen kann eine Datei viel größer, aber es tatsächlich nicht, weil die Art und Weise gzip funktioniert - es ersetzt die Wiederholung und es spielt keine Rolle, ob die wiederholte Phrase ist <div> oder %3Cdiv%3E.

Meine Frage ist-gibt es irgendwelche möglichen Vorteile meines Ansatzes?

PS. Eine meiner Ideen war das browser-caching von dateiähnlichen DATA-URI-Elementen, aber ich weiß nicht, ob das sinnvoll ist, denn dann müsste ich auch die Möglichkeit finden, zu kontrollieren, wie das Laden von Teilen von index.html verhindert wird. Es sei denn, ich könnte die gecachten Elemente woanders verwenden - das hätte auch Anwendungsfälle. Gedanken?

+1

Ich sehe keinen Nutzen für Ihren Ansatz überhaupt. In der Tat macht Ihr Ansatz die Dinge komplexer ohne Nutzen. –

Antwort

0

Erstens, wenn Ihre Website ist nicht ein SPA ist, Ihre freigegebene Skripte inlining (unabhängig von der Methode) bedeutet, dass Sie sie auf jeder Seite einlegen, um den Wert der Browser-Cache zu negieren.

Zweitens ist die Fahrt über den Draht kann vs. nicht Skript für codierte ähnlich sein, aber je mehr wichtige Metrik ist die Zeit, die für die Javascript analysiert und kompiliert werden. URL-Decodierung ist nicht frei, aber während ich glaube nicht, dass es viel in dem großen Plan der Dinge, auf der Materie geht, sehe ich keinen Grund, warum es eigentlich schneller wäre als im Tag nur Skript zu laden.

+0

Vielen Dank für Ihre Antwort. 1. Ja, es ist ein SPA. 2. Kein Zweifel, dass das Inlining zwischen Script-Tags besser performant ist, da, wie Sie sagten, die Dekodierung von 10kB-Daten (trotz unbemerkbarer) einige Auswirkungen auf den Browser/das Gerät haben muss. –