Comment forcer le débogueur de script de Chrome à recharger javascript?

244

J'aime vraiment la possibilité de modifier javascript dans le débogueur Chrome, cependant, je trouve qu'il peut être vraiment difficile d'obtenir que le débogueur récupère le JavaScript à partir du serveur.

Parfois, je dois aller aussi loin que la fermeture du débogueur et le rechargement du cadre fonctionne bien - mais d'autres fois (un dI ne peut pas déterminer dans quelles conditions cela se produit), je dois vider mon cache Internet temporaire. Parfois, je jure que je dois fermer complètement Chrome, puis vider le cache et charger la page avant que le débogueur ne me montre enfin le script le plus à jour.

(NB. Il n'y a pas de mise en cache du script par le serveur web)

Je me demandais si quelqu'un connaissait un moyen rapide et facile de dire au débogueur d'invalider tout son javascript et de le récupérer à nouveau lors du rechargement de la page?

Chris Fewtrell
la source
1
Parfois, je dois même redémarrer IIS Express pour que les choses se rechargent correctement.
Chris O

Réponses:

330

Pendant que vous développez votre script, essayez de désactiver le cache Chrome.

Lorsque vous rechargez la page, le JavaScript devrait maintenant être actualisé.


Chrome vers 2011

Ouvrir les paramètres Désactiver le cache


Chrome vers 2018

Ouvrir les paramètres Désactiver le cache

Vous pouvez également y accéder sur l'onglet réseau:

Onglet Réseau

adrianbanks
la source
8
Alors, cela s'applique-t-il tout le temps, ou uniquement lorsque le débogueur est ouvert?
PilotBob
7
uniquement lorsque les outils de développement sont ouverts
Karolis
11
J'ai tout réglé depuis le début, et maintenant tout d'un coup, je suis coincé avec un certain fichier. Quelqu'un trouve une solution?
IronicMuffin
5
Cela a ajouté quelques années à ma vie. J'ai essayé le CMD + SHIFT + R mais cela ne l'a pas fait. Merci
Kevin Zych
7
Pour ceux qui viennent à cette question plus récemment, notez que le menu des paramètres est hors du menu à trois points verticaux dans Developer Tools. Là, vous pourrez cocher la case pour désactiver le cache.
Scott C Wilson
136

entrez la description de l'image ici

Le menu contextuel illustré ci-dessus est accessible en cliquant avec le bouton droit / en appuyant sur le bouton "recharger" et en le maintenant enfoncé, tandis que Chrome Dev Tools est ouvert .

Le cache vide et le rechargement dur fonctionnent mieux pour moi.

Un autre avantage: cette option conserve tous les autres onglets ouverts et les données du site Web intacts. Il recharge et efface uniquement la page actuelle.

Bishoy Hanna
la source
5
Celui-ci est utile surtout parce qu'il est simple à expliquer. J'étais sous le problème avec un client ne voyant pas la modification effectuée sur son site Web. Appuyez sur F12, puis faites un clic droit sur le bouton de rechargement, choisissez Vider le cache et recharger dur. J'avais fini, merci à ce commentaire :-)
Gull_Code
C'est la meilleure fonctionnalité de chrome :), à tout moment mate.
Bishoy Hanna
1
Merci! J'essayais de comprendre pourquoi le bouton Recharger me donnait parfois un menu et parfois non.
iconoclaste
1
Je n'ai eu aucun problème avec Ctrl + Shift + R lors du rechargement des fichiers Javascript, mais cela ne ramènerait pas le contenu mis à jour qui était servi dans les fichiers HTML. Le cache vide et le rechargement dur ont fait l'affaire.
S. Baggy
La meilleure façon de le faire, utilisez ce cache vide et rechargement dur
hoogw
34

Vous pouvez toujours effacer un fichier spécifique en procédant comme suit:

  1. Ouvrir les outils de développement
  2. Cliquez sur l'onglet Sources
  3. Trouvez votre script / image / fichier
  4. Vérifiez le panneau de droite pour voir si votre fichier est à jour

Si non:

  1. Cliquez avec le bouton droit sur la ressource dans le panneau de gauche et choisissez «Ouvrir le lien dans un nouvel onglet»
  2. Forcer un rechargement de la ressource avec les méthodes ci-dessus. (Voir l'exemple de @Bishoy Hanna)

C'est très pratique si vous avez des ressources qui sont dans des cadres et que vous CTRL+F5ne les forcez pas à les actualiser.

Steve Tauber
la source
1
vrai. appuyant sur CTRL + F5 = Vider le cache actualiser la page actuelle
STEEL
Je n'ai pas d'onglet Ressources.
Mike W
@MikeW il a été renommé Sources - J'ai mis à jour la réponse
Steve Tauber
12

Shift+ F5efface rapidement le cache.

Peter Kelly
la source
18
ctrl-f5 ne coupe pas la moutarde, je le crains. L'ancien fichier javascript reste dans le débogueur.
Chris Fewtrell
9

Pour Google Chrome, ce n'est pas Ctrl+ F5. C'est Shift+ F5pour vider le cache actuel! Ça marche pour moi !

RPDeshaies
la source
Pourquoi ? Je ne comprends pas quelle est la différence entre cela et un commentaire. À la fin, la question la plus utile sera visible en haut de l'article.
RPDeshaies
2
Le questionneur n'a mentionné à aucun moment Ctrl-F5 , donc par définition, votre réponse n'est pas une réponse à la question posée par le questionneur, c'est plutôt un commentaire , une correction des réponses des autres peuples et elle doit être traitée comme telle.
Edward A
9

Voici un raccourci vers DevTools:

  1. F12 ouvrir Chrome DevTools
  2. F1 ouvrir les paramètres DevTools
  3. Cochez Désactiver le cache (lorsque DevTools est ouvert) comme indiqué ci-dessous:

entrez la description de l'image ici

Remarque: mis à jour selon le commentaire de Dimi. Ils ont tendance à le déplacer, alors faites-le moi savoir ou mettez à jour le message si vous remarquez qu'il a changé.

Tony L.
la source
3

Sous Windows, Ctrl+ Shift+ rforcerait le rechargement du script dans Chrome.

Vijay Nandwana
la source
2

Si vous apportez des modifications locales à un javascript dans les outils de développement, vous devez vous assurer que vous désactivez ces modifications avant de recharger la page.

Dans l'onglet Sources, avec votre script ouvert, faites un clic droit dans votre script et cliquez sur l'option "Modifications locales" dans le menu contextuel. Cela fait apparaître la liste des scripts dans lesquels vous avez enregistré les modifications. Si vous le voyez dans cette fenêtre, les outils de développement conserveront toujours votre copie locale au lieu de la rafraîchir à partir du serveur. Cliquez sur le bouton "Revenir", puis actualisez à nouveau et vous devriez obtenir la nouvelle copie.

Steve K
la source
1

Il semble que le débogueur Chrome charge les fichiers source en mémoire et ne les laisse pas disparaître malgré les mises à jour du cache du navigateur, c'est-à-dire qu'il a son propre cache en dehors du cache du navigateur qui n'est pas synchronisé. C'est du moins le cas lorsque vous travaillez avec des fichiers mappés source (je débogue des sources dactylographiées). Après avoir actualisé avec succès le cache du navigateur et validé en naviguant directement vers le fichier source, vous téléchargez le fichier mis à jour, mais dès que vous rouvrez le fichier dans le débogueur, il continuera de renvoyer l'ancien fichier, quelle que soit la version du cache du navigateur ordinaire. Très énervant en effet.

Je considérerais cela comme un bug dans le chrome. J'utilise la version Version 46.0.2490.71 m.

La seule chose qui aide, c'est de redémarrer Chrome (fermez tous les navigateurs Chrome).

David Fahlander
la source
0

Si les fichiers que vous chargez sont mis en cache et si les modifications que vous avez apportées ne se reflètent pas dans le code, il existe 2 façons de gérer cela

  1. Vider le cache comme tout le monde l'a dit

  2. Si vous voulez du cache et que seuls les fichiers doivent être rechargés, vous pouvez aller dans l'onglet réseau de l'outil de développement et effacer tout ce qui a été chargé. la prochaine fois, il ne le chargera pas depuis le cache. vous aurez vos dernières modifications.

iamshravan
la source
0

Si vous exécutez un serveur local sur Apache, vous pouvez obtenir ce qui ressemble à des problèmes de mise en cache. Cela m'est arrivé quand j'avais un serveur Apache fonctionnant sous Vagrant (dans virtualbox).

Ajoutez simplement les lignes suivantes à votre fichier de configuration ( /etc/httpd/conf/httpd.confou équivalent):

#Disable image serving for network mounted drive
EnableSendfile off

Notez qu'il vaut la peine de rechercher dans le fichier de configuration pour voir s'il EnableSendfileest défini onailleurs.

MattCochrane
la source
0

Il existe également 2 solutions (rapides):

  1. Utilisez le débogage en mode navigation privée, fermez la fenêtre et rouvrez-la.
  2. Supprimer votre historique de navigation
Vladimir verleg
la source
0

La désactivation des points d'arrêt a provoqué le chargement du nouveau script pour moi.

Mike W
la source
0

À mon avis, il est plus facile de travailler dans une «session de navigation privée» de Chrome, pour s'assurer que vos fichiers javascript ne proviennent pas du cache.

scottbiker
la source