Der Offline-Zugriff wird für webbasierte Anwendungen immer wichtiger. Obwohl alle Browser über Caching-Mechanismen verfügen, sind diese unzuverlässig und funktionieren möglicherweise nicht immer wie erwartet. HTML5 verwendet die ApplicationCache-Schnittstelle, um einige der durch Offline verursachten Probleme zu lösen.
Die Verwendung der Cache-Schnittstelle bringt Ihrer Anwendung drei Vorteile:
Mit dem Anwendungscache (auch bekannt als AppCache) können Entwickler angeben, welche Dateien vom Browser zwischengespeichert werden sollen, damit Offlinebenutzer darauf zugreifen können. Auch wenn der Benutzer offline auf die Schaltfläche „Aktualisieren“ drückt, wird Ihre App normal geladen und ausgeführt.
ReferenzmanifestdateiUm App-Caching für eine App zu aktivieren, fügen Sie das Manifest-Attribut zum HTML-Tag des Dokuments hinzu:
Das Manifest-Attribut kann auf eine absolute URL oder einen relativen Pfad verweisen, absolute URLs müssen jedoch denselben Ursprung haben wie die entsprechende Webanwendung. Die Manifestdatei kann eine beliebige Dateierweiterung verwenden, muss jedoch mit dem richtigen MIME-Typ bereitgestellt werden (siehe unten).
<html manifest=/cache.manifest> ...</html>
oder
<html manifest=http://www.example.com/example.mf> ...</html>
Sie sollten das Manifest-Attribut auf jeder Seite Ihrer Webanwendung hinzufügen, die Sie zwischenspeichern möchten. Wenn eine Webseite kein Manifest-Attribut enthält, speichert der Browser die Seite nicht zwischen (es sei denn, das Attribut ist explizit in der Manifestdatei aufgeführt).
Dies bedeutet, dass jede Webseite, die der Benutzer durchsucht und die ein Manifest enthält, implizit zum Anwendungscache hinzugefügt wird. Daher müssen Sie nicht jede Seite in Ihrem Inventar auflisten.
Manifestdateien müssen als Text/Cache-Manifest-MIME-Typ bereitgestellt werden. Der Name des Dateisuffixes kann angepasst werden (.manifest wird empfohlen), daher müssen wir den Dateityp mit dem Suffix .manifest auf der Serverseite als text/cache-manifest deklarieren.
Am Beispiel von Apache müssen wir Folgendes hinzufügen: AddType text/cache-manifest .manifest zu httpd.conf
Manifest-DateistrukturEin einfaches Listenformat sieht wie folgt aus:
CACHE MANIFESTindex.htmlstylesheet.cssimages/logo.pngscripts/main.js
In diesem Beispiel werden vier Dateien auf der Webseite zwischengespeichert, die diese Manifestdatei angibt.
Auf folgende Punkte müssen Sie achten:
Schauen wir uns ein komplexeres Beispiel an:
CACHE MANIFEST# 2010-06-18:v2# Explizit zwischengespeicherte „Master-Einträge“.CACHE:/favicon.icoindex.htmlstylesheet.cssimages/logo.pngscripts/main.js# Ressourcen, für die der Benutzer online sein muss.NETWORK:login. php/myapihttp://api.twitter.com# static.html wird bereitgestellt, wenn auf main.py nicht zugegriffen werden kann. # offline.jpg wird bereitgestellt wird anstelle aller Bilder in images/large/# bereitgestellt. offline.html wird anstelle aller anderen .html-Dateien bereitgestellt. FALLBACK:/main.py /static.htmlimages/large/ images/offline.jpg*.html /offline.html
Zeilen, die mit # beginnen, sind Kommentarzeilen, können aber auch für andere Zwecke verwendet werden. Aktualisieren Sie beispielsweise den Cache
Der App-Cache wird nur aktualisiert, wenn sich seine Manifestdatei ändert. Wenn Sie beispielsweise eine Bildressource oder eine JavaScript-Funktion ändern, werden diese Änderungen nicht erneut zwischengespeichert. Sie müssen die Manifestdatei selbst ändern, damit der Browser die Cache-Datei aktualisieren kann. Durch das Erstellen von Kommentarzeilen mit generierten Versionsnummern, Datei-Hashes oder Zeitstempeln wird sichergestellt, dass Benutzer über die neueste Version Ihrer Software verfügen.
Sie können den Cache auch programmgesteuert aktualisieren, wenn eine neue Version verfügbar ist, wie im Abschnitt „Aktualisieren des Caches“ beschrieben.
Wenn die Seite eine Cache-Manifestdatei einführt, muss die Manifestdatei alle für die aktuelle Seite erforderlichen Dateien (CSS, JS, Bild ...) enthalten. Andernfalls wird sie nicht geladen, mit Ausnahme der Dateien, die zwischengespeichert werden müssen , wird empfohlen, NETWORK in der Datei hinzuzufügen. Fügen Sie einem Element ein Sternchen * hinzu, um alle anderen Dateien anzuzeigen
Ein Manifest kann drei verschiedene Abschnitte enthalten: CACHE, NETWORK und FALLBACK.
CACHE:Dies ist der Standardteil des Eintrags. Die unter diesem Header aufgeführten Dateien (oder die Dateien unmittelbar nach CACHE MANIFEST) werden nach dem ersten Download explizit zwischengespeichert.
NETZWERK:Bei den in diesem Abschnitt aufgeführten Dateien handelt es sich um Ressourcen auf der Whitelist, die für die Verbindung mit dem Server erforderlich sind. Alle Anfragen für diese Ressourcen umgehen den Cache, unabhängig davon, ob der Benutzer offline ist. Platzhalter können verwendet werden.
ZURÜCKGREIFEN:Dieser Abschnitt ist optional und gibt eine Fallback-Seite an, wenn auf die Ressource nicht zugegriffen werden kann. Der erste URI stellt die Ressource dar und der zweite stellt die Hintergrundseite dar. Die beiden URIs müssen verwandt sein und denselben Ursprung wie die Manifestdatei haben. Platzhalter können verwendet werden.
Hinweis: Die Abschnitte können in beliebiger Reihenfolge angeordnet werden und jeder Abschnitt kann wiederholt in derselben Liste erscheinen.
Die folgende Liste definiert die umfassende Webseite (offline.html), die angezeigt wird, wenn ein Benutzer versucht, offline auf das Stammverzeichnis der Site zuzugreifen, und gibt außerdem an, dass für alle anderen Ressourcen (z. B. auf Remote-Sites) eine Internetverbindung erforderlich ist.
CACHE MANIFEST# 2010-06-18:v3# Explizit zwischengespeicherte Einträgeindex.htmlcss/style.css# offline.html wird angezeigt, wenn der Benutzer offline istFALLBACK:/// /offline.html# Alle anderen Ressourcen (z. B. Websites) erfordern das Benutzer muss online sein.NETWORK:*# Zusätzliche Ressourcen zum CacheCACHE:images/logo1.pngimages/logo2.pngimages/logo3.png
Bitte beachten Sie: HTML-Dateien, die auf Manifestdateien verweisen, werden automatisch zwischengespeichert. Sie müssen es also nicht zu Ihrer Liste hinzufügen, wir empfehlen Ihnen jedoch, dies zu tun.
Hinweis: HTTP-Cache-Header und Cache-Limits, die auf über SSL bereitgestellten Seiten festgelegt sind, werden durch Cache-Manifeste ersetzt. Daher können über https bereitgestellte Webseiten offline ausgeführt werden.
Cache aktualisierenApps bleiben offline im Cache, es sei denn, eine der folgenden Bedingungen tritt ein:
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Ich hoffe auch, dass jeder das VeVb Wulin Network unterstützt.