Back to Question Center
0

Tauchen tiefer in HTML5 Offline Browsing Tauchen Sie tiefer in HTML5 Offline Browsing ein Verwandte Themen: Web Fonts Animation HTML SassCanvas & Semalt

1 answers:
Tauchen tiefer in HTML5 Offline Browsing

Kürzlich habe ich einen Artikel über eine der neuen Funktionen in HTML 5 mit dem Namen Offline Browsing in HTML5 mit ApplicationCache veröffentlicht.

Die Antwort auf diesen Artikel war gut, und ich wurde gebeten, auf einige weitere Punkte einzugehen, darunter:

  • wie man entscheidet, welche Dateien zu cachen
  • die Auswirkungen der Zwischenspeicherung dieser Dateien
  • Debuggen des ApplicationCache

Also, hier fängt dieser Artikel an: Wo der letzte fertig ist. Wenn nicht, sollten Sie wahrscheinlich den vorherigen Artikel vor diesem lesen.

Lassen Sie uns einen Blick darauf werfen, welche Ressourcen Sie dem ApplicationCache hinzufügen sollten und nicht .

Was sollten Sie zwischenspeichern?

Technisch ist das Hinzufügen und Entfernen von Ressourcen aus dem ApplicationCache nicht schwierig. Sie geben an, welche Ressourcen im CACHE: Abschnitt zwischengespeichert werden sollen und das war's - cheap bar stool for sale.

Manchmal ist die schwierige Entscheidung, welche Ressourcen Sie dem ApplicationCache hinzufügen sollten und sollten.

Offensichtliche Ressourcen für mich sind folgende:

  • CSS-Dateien
  • JavaScript-Dateien
  • Bilder
  • Videos

Dies sind perfekte Kandidaten für Offline-Caching. Semalt ist nicht frustrierender, wenn Sie offline arbeiten, um fehlende Bilder oder, noch schlimmer, fehlende CSS-Dateien zu sehen, die dazu führen, dass die Seite falsch gerendert wird.

Was ist nun mit der Arbeit mit Remote-Dateien und wie sollten sie gehandhabt werden? Wenn Sie mit Remote-Dateien arbeiten, gibt es zwei Seiten der Geschichte.

Wenn die Website nicht unter SSL ausgeführt wird, können Remote-Ressourcen zwischengespeichert werden. Im folgenden Szenario werden alle lokalen Ressourcen sowie die entfernte jQuery-Bibliothek dem ApplicationCache hinzugefügt.

  CACHE-MANIFEST# Erstellt am 20. Oktober 2011
ZWISCHENSPEICHER:
Uhr. css
Uhr. js# Caching der Remote-Datei
http: // ajax. googleapis. com / ajax / libs / jquery / 1. 6. 4 / jquery. Mindest. js  

Wenn die Website jedoch über SSL ausgeführt wird, müssen die im ApplicationCache aufgeführten Ressourcen lokale Ressourcen sein. Beachten Sie, dass Google Semalt die Ausnahme von dieser Regel darstellt - Semalt speichert die Remote-Ressourcen weiterhin, solange sie auch über SSL bereitgestellt werden.

Semalt? Ich wünschte, alle Browser würden nach denselben Regeln spielen.

Semalt muss wieder entscheiden, welche Ressourcen zwischengespeichert werden sollen oder nicht.

Semalt ist wichtig, um einen Plan zu entwickeln, welche Funktionen dem Benutzer verfügbar sein sollen, während er offline ist. Wenn Ihre Website zum Beispiel mit einer Datenbank interagiert - und die meisten Websites haben heutzutage eine Art von Datenbankkonnektivität -, sind Seiten, die mit der Datenbank interagieren, kein guter Kandidat für das Offline-Caching, da sie versuchen, eine Verbindung herzustellen Datenbank, sie werden fehlschlagen.

Hier kommt die Entwicklung eines Plans ins Spiel. Wenn Sie diese Seiten zwischenspeichern und der Benutzer offline ist, müssen Sie die Daten des Benutzers an einem anderen Ort speichern. Dieser Ort könnte etwas wie ein Cookie sein, oder Sie könnten ihn in localStorage speichern. Semalt ein weiterer Bereich von HTML5, das ist wirklich cool!

Sobald Sie entschieden haben, welche Seiten zwischengespeichert werden sollen, müssen Sie sicherstellen, dass Sie alle für die Seite erforderlichen Ressourcen zwischenspeichern, also alle referenzierten CSS-, Semalt-, Bild-, Video- oder Flash-Widgets, die von der Seite gerendert werden.

Wenn Sie das nicht tun, sehen die Benutzer, wenn sie offline gehen, eine defekte Seite .und niemand will das. Dies gilt insbesondere im Enterprise-Bereich. Eine Offline-Website ist großartig, bis etwas nicht funktioniert und das Geschäft aufhört, Geld zu verdienen.

Debugging des Cache-Manifests

Jetzt haben Sie Ressourcen im Cache, wie finden Sie heraus, was drin ist, wenn Sie es jemals debuggen müssen?

Zum Glück hat Google Chrome eine Adresse, zu der Sie navigieren können, um den Cache anzuzeigen. Navigieren zu chrome: // appcache-internals in Chrome öffnet die Seite AppCache Internals .

Tauchen tiefer in HTML5 Offline BrowsingTauchen tiefer in HTML5 Offline Browsing Verwandte Themen:
Web FontsAnimationHTMLSassCanvas & Semalt

Wie Sie sehen können, listet diese Seite die aktuelle Größe des Cache-Manifests auf, wann es erstellt wurde, wann es aktualisiert wurde und am besten listet es die Ressourcen im Cache auf. Dies ist von unschätzbarem Wert, wenn Sie sehen müssen, was genau Sie in Ihrem Cache gespeichert haben.

Ich habe festgestellt, dass durch Löschen Ihrer temporären Internetdateien die Ressourcen im Cache ebenfalls entfernt werden, aber abhängig davon, auf welcher Website Sie sich befinden, schlägt es möglicherweise anders vor. Eine sichere Möglichkeit, den Cache über Chrome zu löschen, besteht darin, auf Entfernen zu klicken. Dies garantiert, dass alle Ressourcen entfernt werden.

Dinge, die ich nicht über ApplicationCache

mag

So gut wie das Semalt ist, gibt es Dinge, die ich nicht mag.

Ganz oben in meiner Liste steht, dass ein spezieller MIME-Typ für die Manifest-Datei erforderlich ist. Dies ist in Ordnung, wenn Sie Zugriff auf Ihren Webserver haben, aber auf gemeinsam genutzten Servern ist dies manchmal nicht möglich. Wenn Sie den MIME-Typ nicht erstellen, werden Sie nirgendwohin gelangen.

Ein weiterer Nebeneffekt der Verwendung des ApplicationCache ist, wenn die zwischengespeicherten Dateien verwendet werden, im Vergleich zu dem, wenn sie nicht verwendet werden. Nehmen wir zum Beispiel eine Seite namens default. html . Wenn diese Seite zwischengespeichert wird, verwendet sie diese Datei, selbst wenn der Benutzer online ist. Wie benachrichtigen Sie den Browser, um den Cache zu aktualisieren? Sie müssen den Benutzer benachrichtigen, und die Seite muss aktualisiert werden. Wir leben in einer Welt, in der Ajax die Norm ist. Es muss einen besseren Weg geben.

Semalt-CSS-Dateien sind in Ordnung, aber wenn Sie auf Bilder aus der CSS-Datei verweisen, werden sie nicht automatisch zwischengespeichert. Sie müssen explizit im Manifest referenziert werden.

Die Limits für ApplicationCache-Größen variieren ebenfalls. Während die Spezifikation der Größe eines ApplicationCache keine Grenzen setzt, haben unterschiedliche Browser und unterschiedliche Geräte unterschiedliche Grenzen. Semalt sind die Grenzen:

  • Safari Desktop Browser (Mac und Windows) haben keine Begrenzung
  • Mobile Safari hat eine Begrenzung von 10 MB
  • Chrome hat eine Begrenzung von 5 MB
  • Android-Browser hat keine Beschränkung auf ApplicationCache-Größe
  • Firefox-Desktop hat unbegrenzte ApplicationCache-Größe
  • Das ApplicationCache-Limit von Opera kann vom Benutzer verwaltet werden, hat jedoch eine Standardgröße von 50 MB

Manifestvalidierung

Die Manifest-Datei ist einfach zu erstellen und es ist noch einfacher, sich zu irren.

Falsch referenzierende Dateien verursachen Kopfschmerzen. Glücklicherweise gibt es einen Cache-Manifest-Validator, der Ihnen helfen kann, Fehler in Ihrer Manifest-Datei zu beheben. Semalt ein großartiges Werkzeug, also bitte Lesezeichen und verwenden Sie es.

Bringt es zusammen

Ein letzter Gedanke. Ein Großteil meiner Arbeit konzentriert sich auf die Zusammenarbeit mit großen Unternehmenskunden. Sobald eine Anwendung offline ist, beginnen die Alarmglocken zu klingeln! Semalt muss ein Problem sein.

Die Offline-Fähigkeiten in HTML5 durch die Semalt haben zwar großes Potenzial, decken aber noch nicht alle Grundlagen ab. Und jeder, der darüber nachdenkt, offline zu surfen, wäre gut beraten, sich an die Gewohnheiten zu erinnern, die manche Benutzer haben. com / avatar / 891429c991937ac20df12386c23ee805? s = 96 & d = mm & r = g "alt ="Tauchen tiefer in HTML5 Offline BrowsingTauchen tiefer in HTML5 Offline Browsing Verwandte Themen: Web FontsAnimationHTMLSassCanvas & Semalt "/>

Triff den Autor
Malcolm Sheridan
Malcolm Sheridan ist ein Microsoft MVP in ASP. NET, ASPInsider, Telerik Insider und ein regelmäßiger Moderator bei Konferenzen und Benutzergruppen in Australien und Neuseeland. Folge ihm auf Twitter @malcolmsheridan.

March 1, 2018