9
votes

Cache Manifest l'application hors ligne non rafraîchissante des fichiers JavaScript à Chrome

Je travaille sur une application Web hors ligne à l'aide d'un fichier de cache manifeste. J'ai du mal à rafraîchir mes fichiers javascript. Si je modifie un fichier .js (qui est répertorié dans le fichier manifeste) et je modifie ensuite la version du fichier manifeste no. et enregistrez-le, le fichier .js modifié n'est pas rechargé sur le client. Que dois-je faire pour obtenir des fichiers .js à rafraîchir?

merci


0 commentaires

5 Réponses :


12
votes

C'est parce que le serveur Web indique les fichiers statiques du cache du navigateur pendant quelques heures. Donc, le navigateur ne connaît pas que le fichier manifeste est modifié. Vous pouvez effacer toutes les données d'application 'ou' config le serveur Web Le manifeste n'est pas cachable ...

lire http://dicintohtml5.info/offline.html pour plus d'informations

Si vous souhaitez effacer votre cache de l'application sur Chrome Use Use Chrome: // AppCache-Internals / et à la main, vous devez rechercher dans C: \ Documents et paramètres \ YourUserName \ Paramètres locaux \ Données d'application \ Google \ Chrome \ Data utilisateur \ Par défaut \ Cache


0 commentaires

4
votes

J'avais supposé que vous utilisiez un manifeste de cache, puis rafraîchissez le manifeste que le navigateur demanderait à nouveau tous les fichiers. Cependant, j'ai constaté que j'avais besoin de définir explicitement les en-têtes dans tous les fichiers du manifeste pour indiquer au navigateur de ne pas cacher les fichiers. Je crois qu'une fois que le manifeste indique au navigateur de demander à nouveau le fichier, le navigateur le traite comme tout autre fichier mis en cache non manifeste. Peut-être que c'est une erreur avec chrome, mais je me sens comme si je l'ai vue dans un autre navigateur WebKit.

Peu importe, définissez les en-têtes des fichiers du manifeste pour ne jamais être mis en cache et ils doivent recharger lorsque vous mettez à jour le manifeste. Si ces fichiers sont utilisés en dehors d'une page manifeste, vous devrez peut-être réellement mettre en cache les fichiers en fonction de vos besoins.


1 commentaires

J'ai vécu le même comportement. Dans mes expériences, j'ai remarqué que dans ce scénario, à l'aide de rack et de Webrick, Chrome 27 recharge correctement les fichiers HTML (quels que soient les en-têtes de mise en cache), mais nécessitent de désactiver la mise en cache des fichiers JavaScript. Au contraire, Firefox 21 recharge correctement les fichiers JavaScript même avec la mise en cache par défaut. Pour Chrome, vous pouvez trouver un document de travail config.ru sur github.com/edymtt/cvsandbox/blob/master/config.ru



1
votes

J'ai eu le même problème jusqu'à ce que je rencontre cet avertissement inestimable sur le Site de développeur Mozilla

Important: Ne spécifie pas le manifeste lui-même dans le cache manifeste fichier , sinon il sera presque impossible d'informer le navigateur A Un nouveau manifeste est disponible.

woops. mon mauvais.

Cependant, chaque fois que je change quelque chose dans le code, je dois changer quelque chose dans le manifeste, puis recharger deux fois, ce qui est un problème sans rapport.


0 commentaires

3
votes

type chrome: // appccache-interne dans votre barre d'adresse puis cliquez sur Entrée

Une liste de manifestes en cache apparaîtra alors supprimez simplement celui que vous souhaitez et tout sera actualisé lorsque vous chargez à nouveau votre page.

J'espère que cela aide :)


0 commentaires

0
votes

Dans mon cas, je dois désactiver le cache de navigateur traditionnel à l'aide de META Tags. Voir THIS QUESTION Comment < / p>


0 commentaires