開発中は、FirefoxでJavaScriptファイルの最新バージョンを使用するために、常にFirefoxの「キャッシュをクリア」する必要があります。
JavaScriptファイルのキャッシュを完全にオフにするための設定(about:config)がありますか?または、そうでない場合、すべてのファイルに対して?
Firefoxのアドレスバーに「about:config」と入力し、以下を設定します。
browser.cache.disk.enable = false
browser.cache.memory.enable = false
ローカルで開発する場合、またはHTML5の新しいマニフェスト属性を使用する場合は、about:configで次の設定も必要になる場合があります。
browser.cache.offline.enable = false
Web Developer Toolbar には、キャッシュを無効にするオプションがあり、必要に応じてキャッシュのオン/オフを簡単に切り替えることができます。
使ってみましたか CTRL-F5 ページを更新するには?
JavaScriptに対してのみキャッシュを無効にする特定のオプションはありません。キャッシュを完全に無効にする必要があります。
FireBug には、[ネットワーク]タブのドロップダウンメニューでブラウザーキャッシュを無効にするオプションがあります。
キャッシュを無効にする同じページで、これを実行します。参考までに、作業中のバージョンは30.0です。
あなたはできる :
その後、それは自分自身からページをリロードし(あなたがオンになっている)、すべてのものが再キャッシュされ、すべてのfurthureリクエストも毎回再キャッシュされ、あなたは常に目を離さないようにWeb開発者を常に開いたままにしておくことができます(チェック) 。
Firefox 48開発者ツール
ツールボックスが開いているときにのみキャッシュをオフにできます。これは、Web開発に最適です。
https://stackoverflow.com/a/27397425/895245 には同様のコンテンツがありますが、その後、位置が少し変更されました。
サーバー側のコードを使用している場合は、乱数を生成し、次の方法でsrcの末尾に追加できます。
src = "yourJavascriptFile.js?randomNumber = 434534"
randomNumberが毎回ランダムに生成されます。
私は古代の質問を復活させていることを知っていますが、今日この問題を解決しようとして別の解決策を考えていました。私がテストしたいときにキャッシュを切り替えることは本当に受け入れられませんでした。他の人が述べたように、ハードリフレッシュ(ctrl + shift + r)は常に機能しません。
代わりに、開発環境のvhost.confファイルに以下を追加することを選択しました(.htaccessでも実行できます)。
<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>
私の開発環境では、これによりjsとcssが常に取得されます。さらに、それは私のブラウジングの残りの部分には影響せず、すべてのブラウザで機能するため、chrome /などでのテストも簡単です。
ここでスニペットを見つけ、他の便利なApacheのトリックも: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess =
クライアントが本番環境で常に最新バージョンを参照できるようにするために、更新ごとにjs includeのクエリ文字列を増やします。
jquery.somefile.js?v=0.5
これにより、クライアントのブラウザは新しいクエリ文字列を見つけるとローカルキャッシュを更新しますが、ファイルが再び更新されるまで新しいコピーをキャッシュします
使用できます CTRL-F5 キャッシュをバイパスしてリロードします。
キャッシュを使用しないように、Firefoxで設定を設定できます。
network.http.use-cache = false
Jsファイルのno-cache/Expires/Cache-Controlヘッダーを送信するようにWebサーバーをセットアップできます。
Apache Webサーバーの 例 を次に示します。
最適な戦略は、JSファイルへの一意のURLを構築するようにサイトを設計することです。これは、変更があるたびにリセットされます。このように、変更がない場合はキャッシュしますが、変更が発生するとすぐにリロードします。
特定の環境ツールに合わせて調整する必要がありますが、PHP/Apacheを使用している場合は、あなたとエンドユーザーの両方に最適なソリューションがあります。
http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/
投稿された最後の2つのソリューションには長所と短所がありますが、どちらも私見の優れたソリューションです。
セキュリティを強化するために、セッションIDをURLに埋め込むこともできます。しかし、開発ではそれは問題ではありませんが、削除するのを忘れたらどうなりますか?また、それは本当に機能しますか?連続番号ジェネレーターのようなものが必要ではないでしょうか(セッションに格納されているヒットカウント、または1ならば0、1ならば0、1ならば1)。
セッションID(または任意のシーケンサー)を追加すると、キャッシュしたくないすべてのリソースに追加することを忘れないでください。一方では、積極的に開発およびテストしているリソースだけにセッションIDを含めることができるため、より優れています。一方、それはあなたがそれをしなければならず、本番環境でそれを削除することを忘れてはならないことを意味します。
Vhost.confまたは.htaccessファイルを変更すると、セッションIDを追加および削除することを覚えておく必要なく、うまく機能します。ただし、すべてのjsおよびcssリソースのパフォーマンスが影響を受けるという欠点があり、大きなファイルがある場合は速度が低下します。
どちらも優れたエレガントなソリューションのように見えますが、ニーズによって異なります。
私が使う CTRL-SHIFT-DELETE これにより、プライバシー機能が有効になり、キャッシュをクリアしたり、Cookieをリセットしたりすることができます。確認を求めるダイアログボックスをポップアップ表示する代わりに、実行するように設定することもできます。
NightlyのようなFirefoxの上位バージョンには、「キャッシュを無効にする」という名前のオプションがあり、ギアをクリックして見つけることができます。そして、そのオプションは現在のセッションでのみ機能します。つまり、インスペクターを閉じて再起動すると、キャッチを無効にしたい場合は再度チェックする必要があります。
さまざまな選択肢を2時間ブラウジングした後、これはうまくいきました。
私の要件は、春のセキュリティで保護されたWebアプリケーションでjsファイルとcssファイルのキャッシュを無効にすることでした。しかし同時に、これらのファイルを特定のセッション内で「キャッシュ」します。
リクエストごとに一意のIDを渡すことは、推奨されるアプローチの1つです。
そして、これは私がやったことです。
<script language="javascript" src="js/home.js"></script>
私は使った
<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>
上記のアプローチに対する短所は大歓迎です。セキュリティ上の問題 ?
Firefox 45では、browser.cache.disk.enableの値を変更することでディスクキャッシュオプションを設定できます。
値は「about:config」ページで設定できます。
オン http://kb.mozillazine.org/About:config_entries#Browser 「browser.cache.disk.enable」に関する次の説明を見つけました。
True(デフォルト):browser.cache.disk.capacityで指定された容量までのディスクキャッシュを使用するFalse:ディスクキャッシュを無効にする(browser.cache.disk.capacityを0に設定するのと同じ効果)
まず第一に、これは簡単に行うことができます。 PHPにより、ブラウザにキャッシュ日付(有効期限)に基づいてファイルを強制的に更新させます。実験的なニーズにのみ必要な場合は、ctrl + shift + delを使用して、Firefoxブラウザー内ですべてのキャッシュを一度にクリアしてください。 3番目の解決策は、Firefox用に終了する多くのアドオンを使用して、タイムラインに基づいてキャッシュをクリアすることです。