ChromeのスクリプトデバッガーにJavaScriptの再読み込みを強制する方法


244

私はChromeデバッガーでJavaScriptを編集する機能が本当に好きですが、デバッガーがサーバーからJavaScriptを再フェッチするのは非常に難しい場合があることに気づきました。

デバッガーを閉じてフレームをリロードするだけでも問題ない場合もありますが、それ以外の場合(これが発生する状況下でピン留めできない)一時インターネットキャッシュをクリアする必要があります。ときどき、Chromeを完全に閉じてキャッシュをクリアし、ページをロードしてからデバッガが最終的に最新のスクリプトを表示しなければならないことを誓います。

(注:Webサーバーによるスクリプトのキャッシュはありません)

私は誰かがデバッガにそのすべてのJavaScriptを無効にしてページの再読み込み時にすべてをフェッチするように指示する迅速かつ簡単な方法を知っているのだろうかと思っていましたか?


1
場合によっては、正しく再読み込みするためにIIS Expressを再起動する必要があります。
Chris O

回答:


330

スクリプトを開発している間、Chromeキャッシュを無効にしてみてください。

ページをリロードすると、JavaScriptが更新されるはずです。


2011年頃のクロム

設定を開く キャッシュを無効にする


2018年頃のChrome

設定を開く キャッシュを無効にする

ネットワークタブからアクセスすることもできます。

ネットワークタブ


8
それで、これは常に適用されますか、それともデバッガが開いているときだけですか?
PilotBob

7
Dev Toolsが開いているときのみ
Karolis 2012年

11
私はそれをずっと設定していたのですが、今突然、私は特定のファイルで立ち往生しています。誰かが解決策を見つけますか?
IronicMuffin

5
これは私の人生に数年を追加しました。CMD + SHIFT + Rを試しましたが、うまくいきませんでした。ありがとう
Kevin Zych

7
最近この質問をしている人のために、設定メニューは開発者ツールの3つの縦のドットメニューから外れていることに注意してください。そこで、チェックボックスをオンにしてキャッシュを無効にすることができます。
スコットCウィルソン

136

ここに画像の説明を入力してください

上記のコンテキストメニューにアクセスするには、Chrome Dev Toolsを開いた状態で、「再読み込み」ボタンを右クリック/長押しします。

空のキャッシュとハードリロードは、私にとって最適です。

別の利点:このオプションは、開いている他のすべてのタブとWebサイトのデータをそのまま保持します。現在のページをリロードしてクリアするだけです。


5
これは説明が簡単なので、特に便利です。私はクライアントが彼のウェブサイトで行われた変更を見ないという問題に直面していました。F12キーを押してから、再読み込みボタンを右クリックし、[キャッシュを空にする]と[ハード再読み込み]を選択します。私はそのコメントに感謝しました:-)
Gull_Code

それは最高のクロム機能です:)、いつでも仲間。
Bishoy Hanna 2014

1
ありがとう![再読み込み]ボタンでメニューが表示される場合と表示されない場合がある理由を理解しようとしました。
iconoclast 2014年

1
JavaScriptファイルをリロードするときにCtrl + Shift + Rで問題はありませんでしたが、HTMLファイルで提供されていた更新されたコンテンツが戻されませんでした。空のキャッシュとハードリロードがそのためのトリックでした。
S.バギー2015

それを行うための最良の方法は、この空のキャッシュとハードリロードを使用することです
hoogw '11 / 07/17

34

次の操作を行うと、特定のファイルをいつでもクリアできます。

  1. オープン開発ツール
  2. [ソース]タブをクリックします
  3. スクリプト/画像/ファイルを見つけます
  4. 右側のパネルをチェックして、ファイルが最新かどうかを確認します

そうでない場合:

  1. 左側のパネルでリソースを右クリックし、[リンクを新しいタブで開く]を選択します
  2. 上記の方法でリソースを強制的にリロードします。(@Bishoy Hannaの例を参照)

これは、フレーム内にあり、CTRL+F5強制的に更新されないリソースがある場合に非常に便利です。


1
本当。CTRL + F5を押す=キャッシュをクリアして現在のページを更新
STEEL

[リソース]タブがありません。
マイクW

@MikeWそれはSourcesに名前が変更されました
Steve Tauber


9

Google ChromeではCtrl+ ではありませんF5。現在のキャッシュをクリアするのはShift+ F5です!わたしにはできる !


どうして ?それとコメントの違いがわかりません。最後に、最も役立つ質問が投稿の上部に表示されます。
RPDeshaies 2013年

2
質問者がCtrl-F5の時点で言及しなかったため、定義により、あなたの回答は質問者が尋ねた質問に対する回答ではなく、コメント、他の人々の回答に対する修正であり、そのように扱われるべきです。
エドワードA

9

以下はDevToolsへのショートカットです。

  1. F12 Chrome DevToolsを開く
  2. F1 DevTools設定を開く
  3. 以下に示すように(DevToolsが開いている間は)キャッシュを無効にするをチェックします。

ここに画像の説明を入力してください

注:Dimiのコメントに従って更新されました。彼らはそれを移動する傾向があるので、それが変更されたことに気付いたら、私に知らせたり、投稿を更新したりしてください。



2

開発者ツールでJavaScriptにローカルの変更を加える場合は、ページをリロードする前にそれらの変更をオフにする必要があります。

[ソース]タブでスクリプトを開いた状態で、スクリプトを右クリックし、コンテキストメニューから[ローカル変更]オプションをクリックします。変更を保存したスクリプトのリストが表示されます。そのウィンドウに表示されている場合、開発者ツールはサーバーから更新するのではなく、常にローカルコピーを保持します。「元に戻す」ボタンをクリックし、再度更新すると、新しいコピーが取得されます。


1

Chromeデバッガーがソースファイルをメモリにロードし、ブラウザーキャッシュの更新にもかかわらず、それらを実行できないように見えます。つまり、同期していないブラウザーキャッシュとは別に独自のキャッシュがあります。少なくとも、これはソースがマップされたファイルを操作する場合に当てはまります(私はtypescriptソースをデバッグしています)。ブラウザーキャッシュを正常に更新し、ソースファイルを直接参照して検証した後、更新されたファイルをダウンロードしますが、デバッガーでファイルを再度開くとすぐに、通常のブラウザーキャッシュのバージョンに関係なく、古いファイルを返し続けます。確かに非常に迷惑です。

私はこれをクロムのバグだと思います。バージョン46.0.2490.71 mを使用しています。

役立つ唯一のことは、Chromeを再起動することです(すべてのChromeブラウザを閉じます)。


0

ロードしているファイルがキャッシュされていて、加えた変更がコードに反映されていない場合は、これに対処する方法が2つあります。

  1. みんなが言ったようにキャッシュをクリアする

  2. キャッシュが必要で、ファイルのみをリロードする必要がある場合は、開発ツールのネットワークタブに移動して、ロードされたものをすべてクリアできます。次回はキャッシュからロードしません。あなたの最新の変更があります。


0

Apacheでローカルサーバーを実行している場合、キャッシュの問題のように見えるものを取得できます。これは、(virtualboxの)Vagrantの下でApacheサーバーを実行しているときに起こりました。

次の行を構成ファイル(/etc/httpd/conf/httpd.confまたは同等のもの)に追加するだけです。

#Disable image serving for network mounted drive
EnableSendfile off

設定ファイルを検索して、が他の場所にEnableSendfile設定されているonかどうかを確認する価値があることに注意してください。



0

ブレークポイントを無効にすると、新しいスクリプトが読み込まれました。


0

私の意見では、JavaScriptの「プライベートブラウジングセッション」で作業して、JavaScriptファイルがキャッシュから取得されないようにするのが最も簡単です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.