Pregunta

he tenido buena suerte con aplicaciones sin conexión en caché hasta que probé incluyendo los datos de los puntos finales JSONP. He aquí un pequeño ejemplo, que carga una sola película de la nueva API de widget de Netflix:

<!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>

... y aquí está el contenido de mi manifiesto, main.manifest, que no contiene archivos y sólo está ahí para mi navegador sabe para almacenar en caché el archivo HTML que llama.

CACHE MANIFEST

Sí, he confirmado que mi servidor está enviando el manifiesto abajo con el tipo de contenido correcto, text/cache-manifest.

La aplicación funciona bien - es decir, ambos se mostrarán las alertas - la primera vez que corro, pero posteriores carreras, incluso con el intento de almacenamiento en memoria caché en la línea 10, parece estar intentando cargar el guión de la memoria caché no importa lo que es la cadena de consulta. Veo la alerta que muestra la fuente de la escritura, pero la devolución de llamada nunca se dispara.

Si elimino el enlace de manifiesto a partir de la línea 2 y se restablece el navegador - siendo Safari y el simulador de iPhone - para borrar la memoria caché, que funciona todo el tiempo. También he intentado alertar al número de etiquetas de secuencia de comandos en la página, y sin duda es ver tanto la etiqueta existente y creado de forma dinámica en todos los casos.

¿Fue útil?

Solución

Aha, que se encuentra en la especificación, de todos los lugares locos:

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

Yo tenía que añadir http://movi.es/ a la red: sección de mi manifiesto. archivo completo ahora se ve así:

CACHE MANIFEST

NETWORK:
http://movi.es/

... y parece golpear la red cada vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top