Come posso evitare di avere rendimenti JSONP memorizzate nella cache in un'applicazione offline HTML5?

StackOverflow https://stackoverflow.com/questions/1911614

Domanda

Ho avuto fortuna con le applicazioni offline memorizzate nella cache fino a quando ho provato compresi i dati dagli endpoint JSONP. Ecco un piccolo esempio, che carica un unico filmato dal nuovo Netflix widget di 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>

... ed ecco il contenuto del mio manifesto, main.manifest, che non contiene i file ed è lì solo così il mio browser sa mettere in cache il file HTML chiamando.

CACHE MANIFEST

Sì, ho confermato che il mio server sta inviando il manifesto verso il basso con il tipo di contenuto corretto, text/cache-manifest.

L'applicazione funziona bene - il che significa due avvisi mostrano - la prima volta che l'eseguo, ma le successive esecuzioni, anche con il tentativo di busting della cache in linea 10, sembra essere il tentativo di caricare lo script dalla cache, non importa ciò che la stringa di query è. Vedo l'avviso che mostra la sorgente dello script, ma la richiamata mai incendi.

Se rimuovo il link manifesta dalla linea 2 e reimpostare il mio browser - essendo Safari e il simulatore di iPhone - per cancellare la cache, funziona ogni volta. Ho anche provato allertare il numero di tag script nella pagina, ed è sicuramente vedere sia il tag esistente e dinamicamente creati in tutti i casi.

È stato utile?

Soluzione

Ah, trovato nelle specifiche, di tutti i luoghi folli:

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

avevo bisogno di aggiungere http://movi.es/ alla rete: sezione del mio manifesto. File completo ora assomiglia a questo:

CACHE MANIFEST

NETWORK:
http://movi.es/

... e sembra colpire la rete ogni volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top