Frage

Ich hatte viel Glück mit im Cache gespeicherten Offline-Apps, bis ich einschließlich der Daten aus JSONP Endpunkten versucht. Hier ist ein kleines Beispiel, die Lasten ein einzelner Film aus dem neuen Netflix-Widget API:

<!DOCTYPE html>
<html manifest="main.manifest">
   <head>
      <title>Testing!</title>
   </head>
   <body>
   <p>Attempting to recover a title from Netflix now...</p>
   <script type="text/javascript">
   function ping(r) { alert('API reply: ' + r.catalog_title.title.regular); }
   var cb = new Date().getTime();
   var s = document.createElement('SCRIPT');
   s.src = 'http://movi.es/7Soq?v=2.0&output=json&expand=widget&callback=ping&cacheBuster=' + cb;
   alert('SCRIPT src: ' + s.src);
   s.type = 'text/javascript';
   document.getElementsByTagName('BODY')[0].appendChild(s);
   </script>
</body>
</html>

... und hier ist der Inhalt meines manifest, main.manifest, die keine Dateien enthalten und nur dort so mein Browser kennt den Aufruf HTML-Datei zwischengespeichert werden.

CACHE MANIFEST

Ja, ich habe bestätigt, dass mein Server das Manifest unten mit dem richtigen Inhaltstyp sendet, text/cache-manifest.

Die App funktionieren gut - was bedeutet, beiden Warnungen zeigen - das erste Mal, dass ich es laufen, aber nachfolgende Läufe, auch mit dem Versuch eines Cache-Busting in Zeile 10, scheint das Skript aus dem Cache zu versuchen, egal zu laden was der Query-String ist. Ich sehe die Warnung das Skript Quelle zeigt, aber der Rückruf nie ausgelöst wird.

Wenn ich das Manifest Link aus der Leitung 2 entfernen und meinen Browser Reset - ist Safari und das iPhone Simulator - zum Löschen des Cache, es funktioniert jedes Mal. Ich habe auch versucht, die Anzahl der SCRIPT-Tags in der Seite alarmieren, und es ist auf jeden Fall sowohl die bestehenden als auch dynamisch erstellte Tag in allen Fällen zu sehen.

War es hilfreich?

Lösung

Aha, fand es in der Spezifikation, der alle verrückten Orte:

http : //www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#concept-appcache-onlinewhitelist-wildcard

Ich brauchte http://movi.es/ zum Netzwerk hinzuzufügen: Abschnitt meines manifestieren. Komplette Datei sieht nun wie folgt aus:

CACHE MANIFEST

NETWORK:
http://movi.es/

... und scheint das Netzwerk jedes Mal zu treffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top