Static Hoisting

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Neulich habe ich in „Static or not?“ gesagt

[…] das Ausliefern von HTML von einem CDN ist eine ziemliche Leistung.

Was ich meinte ist, dass das Ausliefern von Ressourcen wie Bildern, CSS und JavaScript von einem CDN ziemlich unkompliziert ist. Die Branche macht das schon seit vielen Jahren. Ein Asset mit einer URL kann zu einem CDN verschoben und von dort ausgeliefert werden. Änderungen an diesem Asset werden in der Regel durch Ändern der URL gehandhabt (z. B. style.324535.css, style.css?v=345434 oder ähnliches), so dass wir den Browser-Cache voll ausnutzen können. Aber HTML ist etwas anders. Die URLs zu unserem HTML sind die URLs unserer öffentlich zugänglichen Websites, und diese URLs ändern sich nicht.

Historisch gesehen haben wir dem "Ach ja" gesagt. Unsere Webserver liefern unser HTML aus und wir tun das Beste, was wir dort für die Leistung tun können. Aber der Jamstack-Ansatz ändert das, indem er sagt: Tatsächlich liefern wir auch dieses HTML von einem CDN aus.

Guillermo Rauch nennt das "Hoisting" und vergleicht es damit, wie JavaScript Deklarationen im Code nach oben verschiebt. Jamstack verschiebt statische Assets nach oben im Hosting-Stack.

Was Jamstack als Softwarearchitektur nun ermöglicht hat, ist, die Ergebnisse von Berechnungen zum Edge zu verschieben, direkt neben den Ort, an dem sich Ihre Besucher befinden.

Ein Kernprinzip von Jamstack war es, so viel wie möglich vorab zu rendern (vorab zu berechnen), was der statischen Seitengenerierung zu großer Bedeutung verholfen hat. Die Kernidee ist, dass Berechnungen, die später im Zeitplan der Anfrage stattgefunden hätten, nun in die Build-Phase verschoben, einmal ausgeführt und für alle Benutzer zum Teilen verfügbar gemacht wurden.

Das Hoisting geschieht bemerkenswerterweise automatisch. Was gehoben werden kann, wird gehoben. Aber Dinge, die Server zum Laufen brauchen (z. B. Cloud-Funktionen und API-Kram), können das immer noch tun. Noch komplexer wird es, als Dave und ich in unserem Gespräch mit Brian Leroux darauf eingingen, wie sogar die Ergebnisse der Ausführung von Cloud-Funktionen auf ein CDN gelegt und gecached werden können.