2011-05-03 2 views
8

Je travaille sur une application Web hors connexion à l'aide d'un fichier manifeste de cache. J'ai du mal à actualiser mes fichiers javascript. Si je change un fichier .js (qui est répertorié dans le fichier manifeste) et que je modifie ensuite le numéro de version du fichier manifeste. et enregistrez-le, le fichier .js modifié n'est pas rechargé sur le client. Que dois-je faire pour obtenir les fichiers .js à actualiser?L'application en mode hors connexion du cache ne rafraîchit pas les fichiers javascript dans Chrome

Merci

Répondre

11

C'est parce que le serveur Web indique le cache du navigateur de fichiers statiques pendant quelques heures. Ainsi, le navigateur ne sait pas que le fichier manifeste est modifié. Vous pouvez effacer toutes les données d'application « ou » config serveur web le manifeste n'est pas cacheable ...

Lire http://diveintohtml5.info/offline.html pour plus d'informations

Si vous voulez effacer le cache de votre application sur l'utilisation chrome: // appcache-internals/ et à la main vous devez effectuer une recherche dans C: \ Documents and Settings \ VOTRE_USERNERNAME \ Paramètres locaux \ Données d'application \ Google \ Chrome \ Données utilisateur \ Par défaut \ Cache

4

Je pensais que vous si vous utilisez un cache manifeste, puis actualise le manifeste, afin que le navigateur demande à nouveau tous les fichiers. Cependant, j'ai trouvé que j'avais besoin de définir explicitement des en-têtes dans tous les fichiers du manifeste pour dire au navigateur de ne pas mettre en cache les fichiers. Je crois qu'une fois que le manifeste indique au navigateur de demander à nouveau le fichier, le navigateur le traite comme n'importe quel autre fichier mis en cache non-manifeste. Peut-être que c'est une erreur avec Chrome, mais j'ai l'impression de l'avoir vu dans un autre navigateur WebKit. Quoiqu'il en soit, définissez les en-têtes des fichiers du manifeste pour qu'ils ne soient jamais mis en cache et ils doivent être rechargés lorsque vous mettez à jour le manifeste. Si ces fichiers sont utilisés en dehors d'une page de manifeste, vous devrez peut-être mettre en cache les fichiers en fonction de vos besoins.

+0

J'ai eu le même comportement. Dans mes expériences, j'ai remarqué que dans ce scénario, en utilisant Rack et WEBrick, Chrome 27 recharge correctement les fichiers html (quels que soient les en-têtes de cache) mais nécessite de désactiver la mise en cache pour les 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 travail 'config.ru' sur https://github.com/edymtt/cvsandbox/blob/master/config.ru – edymtt

1

J'ai eu le même problème jusqu'à ce que je suis tombé sur cet avertissement n'a pas de prix sur le Mozilla Developer site

Important: Ne pas préciser le se manifeste dans le fichier manifeste de cache, sinon il sera presque impossible de informer le navigateur qu'un nouveau manifeste est disponible.

woops. ma faute.

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

3

type chrome://appcache-internals dans votre barre d'adresse puis cliquez sur ENTRER

Une liste des mises en cache apparaît manifeste alors simplement supprimer celui que vous voulez et tout sera rafraîchi lorsque vous chargez votre page.

Hope this helps :)

0

Dans mon cas, je doit désactiver le cache du navigateur traditionnel en utilisant les balises meta. Voir this SO question comment cela

Questions connexes