7

それで、私は「エンジン」と呼ばれるスクリプトを持っています、そして多くのヘッドバッシングと(無駄な)デバッグの後、私はGCが単にそれをリロードしていないことに気づきました!

これは私がそれをウェブページ(要素内)に含める方法です<head>

<script type="text/javascript" src="engine.js"></script>

スクリプトの先頭に10を置くconsole.log("asdf");と、そこにないように見えます。GCコンソールの[リソース]タブに移動すると、そのスクリプトに変更がまったく適用されていないことがわかりました。Hlep?最後にを置くことは+ "?" + new Date()助けになりますか?

4

5 に答える 5

27

Chrome、Firefox、IEで機能するユニバーサルソリューションは、Ctrl+ Shift+ Del(Macの場合)を介してキャッシュをクリーンアップすることです。⌘</kbd>+Shift+⌫</kbd>).

Chromeソリューション#1

  1. 開発者ツールを開く(F12または⌘</kbd>+⌥</kbd>+i, or right-click → Inspect).
  2. [ネットワーク]タブを選択し、 [キャッシュを無効にする]チェックボックスをオンにします。

Chromeでキャッシュを無効にする-[ネットワーク]タブ

  1. ページをリロードします。

❗️:キャッシュは、devtoolsウィンドウが開いている場合にのみ無効になります。

Chromeソリューション#2

これは、#1が使用されていない場合にのみ意味があります。

  1. 開発者ツールを開きます。
  2. 右下隅にある[設定]歯車アイコンをクリックします。
  3. 表示されるダイアログで、[ネットワーク]サブセクションの[キャッシュを無効にする]チェックボックスを選択します。これ以降、devtoolsウィンドウが開いているときにキャッシュはスキップされます。devtoolsウィンドウを閉じると、キャッシュは通常どおり機能します。

Chromeはdevtools設定でキャッシュを無効にします

Chromeソリューション#3:空のキャッシュ+ハードリロード

  1. 開発ツールを開きます(そうしないと、次の手順のメニューが表示されません)。
  2. [更新]ボタンをクリックして押したまま、[キャッシュを空にする]と[ハードリロード]をドロップダウンから選択します。

Chromeのハードリフレッシュとキャッシュのリセット

javascriptコードの変更

デバッグに使用できるブラウザに依存しないソリューションは、サーバー側のコードにランダムに生成されたバージョン文字列をクエリパラメータとして追加することです。つまり、スクリプトを次のように呼び出します。

<script type="text/javascript" src="myscript.js?ver=12345"></script>

このトリックは、verパラメータの値が変更されたときにブラウザにスクリプトを再ロードさせます。ajaxリクエストを行う場合は"?ver=" + new Date().getTime()、URLに追加できます。

注:本番環境ではスクリプトをキャッシュする必要がある可能性が高いため、デバッグが終了したらパラメーターを削除することを忘れないでください。ただし、新しいビルドごとに新しいタイムスタンプを生成するのが一般的な方法です。これは本番環境で使用でき、新しい展開後にクライアントが常に更新されたスクリプトを取得できるようにします。


上記のすべてのソリューションとは異なり、これは、クライアントとサーバーの間に何らかのキャッシュ(redis、memcached、varnishなど)またはCDN(akamai、cloudflare、cloudfrontなど)がある場合でも機能します。

于 2012-04-06T16:00:11.313 に答える
1

スクリプトがキャッシュされているため、古いバージョンがキャッシュからロードされている可能性があります。新しいバージョンを確実に入手したい場合は、ブラウザを強制的にリロードしたり、ブラウザのキャッシュをクリアしたり、スクリプトの名前を変更したり、ファイル名の末尾に別のクエリパラメータを設定したりできます。

于 2012-04-06T15:17:14.833 に答える
1

これも私を悩ませました。Ctrl+F5またはSHIFT+F5が機能しなかった...機能するのは、開発ツールを開いて(F12キーを押す)、アドレスバーの横にあるリロードアイコンを右クリックして、[ハードリロード]または[空]を選択することだけです。キャッシュとハードリロード」

于 2017-04-13T08:05:53.537 に答える
0

コメントで言ったように、これはキャッシュの問題だと思います。CTRL+ SHIFT + CANCを使用してブラウジングデータをクリアしない場合は、CTRL+F5で十分です。ただし、ある種のキャッシュを備えているのはサーバーである場合もあります。IBMWebSphereでは、ブラウザーの単純なF5では解決できないキャッシュの問題が発生することがよくあるためです。Webサーバーがそれ自体を「更新」するのを待つ必要があります。

于 2012-04-06T15:21:51.757 に答える
0

2016年10月21日の最新のクローム安定版。

    開発ツールを開きます(F12または右クリック>アドレスバーの右隅にある検査または縦の省略記号アイコン>その他のツール>開発ツール)。

    開発者ツールのナビゲーションバー>設定の右上隅にある縦の省略記号アイコンをクリックします。
    [設定]セクションで、[ネットワーク]>[キャッシュを無効にする]を見つけます。
于 2016-10-21T06:06:49.440 に答える