Pergunta

Eu tive sorte com aplicações offline em cache até que eu tentei incluindo dados de endpoints JSONP. Aqui está um pequeno exemplo, que carrega um único filme a partir do novo 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>

... e aqui está o conteúdo do meu manifesto, main.manifest, que não contém arquivos e só está lá para que o meu navegador sabe para armazenar em cache o arquivo HTML chamando.

CACHE MANIFEST

Sim, eu já confirmou que o meu servidor está enviando a baixo manifesto com o tipo de conteúdo correto, text/cache-manifest.

O aplicativo funciona bem - o que significa que ambos os alertas mostrar - a primeira vez que executá-lo, mas execuções subsequentes, mesmo com a tentativa de cache-rebentando na linha 10, parece estar tentando carregar o script do cache não importa o que a string de consulta é. Eu vejo o alerta mostrando a origem do script, mas o retorno nunca mais incêndios.

Se eu remover o link manifesto da linha 2 e redefinir meu navegador - sendo Safari e do iPhone Simulator - para limpar o cache, ele trabalha o tempo todo. Eu também tentei alertar o número de marcas SCRIPT na página, e é definitivamente vendo tanto o tag existente e dinamicamente criado em todos os casos.

Foi útil?

Solução

Aha, encontrou na spec, de todos os lugares loucos:

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

eu precisava para adicionar http://movi.es/ à rede: seção de meu manifesto. arquivo completo agora se parece com isso:

CACHE MANIFEST

NETWORK:
http://movi.es/

... e parece atingir a rede de cada vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top