CloudFlare hat eine bahnbrechende Technologie namens Rocket Loader (sowohl für kostenlose als auch für kostenpflichtige Konten). Aber wie geht das eigentlich?
Sie haben ein paar von Seiten , die die Technologie beschreiben , aber nicht viele technische Details. Eine wichtige Eigenschaft ist, dass das gesamte Javascript nicht blockierend (asynchron) geladen wird , was eine unglaubliche Leistung ist! Dies bedeutet, dass HTML / CSS gerendert werden kann, ohne auf das Laden und Ausführen von Skripten zu warten.
Wie ist das möglich?
Es kann doch nicht einfach alle ändern <script>
Tags zu verwenden async="true"
oder defer="true"
als würde dies mehrere Dinge brechen ...
- Skripte müssen weiterhin in der richtigen Reihenfolge geladen werden (zum Beispiel können Sie jQuery-Plugins erst laden, wenn die jQuery-Bibliothek geladen wurde.)
document.write()
Aufrufe in diesen Skripten müssen funktionieren ( anscheinend tun diese in typischen asynchronen Skripten nichts ).- Was ist mit dem Ereignis DOMContentLoaded? Wenn einige Skripte geladen werden, nachdem dies ausgelöst wurde, werden ihre Event-Handler nicht ausgelöst?
Und gibt es als Entwickler noch etwas, das ich beachten muss, um sicherzustellen, dass meine Websites / Skripte / Plugins mit Rocket Loader kompatibel bleiben?