Internet Explorer 8 を使って自分のウェブアプリケーションをテストするとき、ページをリロードしないので、変更した内容が表示されないことがよくあります。そのため、自分の修正が「うまくいかなかった」のはなぜなのか、実際にはブラウザが修正したバージョンを読み込んでくれないのかと、多くの無駄な時間とイライラが生じていました
更新ボタンを試してみたF5, Control–F5, Control–R, Control–Shift–R, Controlを押しながらRefreshボタンをクリックしてみました。Fiddlerで確認しました
どうやってIEに「キャッシュされていると思っていることは気にしない、ページをリロードしたい – いや、本当に今回は本音を言うと、実際にサーバーに行ってすべてをダウンロードしなおしてほしい」と伝えるのか?
156 EMP 2009-12-09
- ツール>>インターネットオプションを選択します
- 閲覧履歴の「設定」ボタンをクリックします
- Every time I visit the webpage ラジオボタンを選択します
- OKをクリックして設定ダイアログを閉じます
- OK]をクリックして、[インターネットオプション]ダイアログを閉じます
129 Gonzalo 2009-12-09
ブラウザはIE8と記載されているので、F12を押して開発ツールを開き、上部のキャッシュメニューを選択し、サーバーから常にリフレッシュしてキャッシュを迂回させます
要するに、F12を押します。キャッシュ -> サーバーから常に更新をクリックします
キャッシュをクリアしたい場合は、ここでもキャッシュをクリアすることができます。常に更新するオプションはグローバルなオプションではなく、IE の全体的なパフォーマンスを妨げるものではありません
IE7にも開発ツールはありますが、別途インストールする必要があります。また、IE8の開発ツールを使って、IE7モードでブラウザを動かすこともできます
43 Brandon 2010-07-08
IEのCtrl+F5はキャッシュを無視してページをリロードします
22 mfeingold 2009-12-10
IEは、キャッシュヘッダを介してキャッシュしないように指示しても、ページをキャッシュすることに非常に熱心です。Microsoft KB 234067は、必要な呪文を説明しています。要するに、以下のようなヘッダを配信する必要があります
Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>
Expires = -1
(KB の記事で推奨されている) を設定すると、ほとんどのフレームワークで動作するはずです; ブラウザは無効な日付フォーマットを過去のものとして扱う必要があります (RFC 2616)
.NETでは、Webページを呼び出す前にこの一連のメソッドを使用することで、ページ単位の粒度で行うことができます
HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();
を参照してください。http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ MVC3.0に対応しています
19 Marcelo Cantos 2009-12-10
ウェブ開発者ツールバーのネットワークタブには、キャッシュを簡単にクリアするボタンがあります。私は通常、あなたが説明しているケースではそれを使用しています
本当はキャッシュ全体をクリアしたくないかもしれないので、理想的ではありませんが、私は一般的なブラウジングにはIEを使用していないので、それは私のために動作します
6 pkaeding 2009-12-09
これはIE9では未だに発生しています。驚くべきことに、答えはCtrl–Shift-リフレッシュボタンです
4 PandaWood 2011-04-01
ちなみに、この問題はおそらくあなたのウェブサイトの閲覧者にも存在するでしょう。私はAJAXの本で次のようなアイデアを見ました
PHPを使用して、現在のURLにランダムなトークンを追加することで、ブラウザが別のページだと騙されるようにします
3 Moshe 2009-12-10
私も同じ問題を抱えていました。方法としては、キャッシュをクリアする(Safety -> Delete Browsing History)しかないと思います。インターネット一時ファイル」にチェックを入れるだけ
これが助けになることを願っています
2 jchapa 2009-12-09
altまたはctrlキーを押しながら更新ボタンをクリックします
2 niaccm 2010-11-17
URLにランダムなトークンを追加することが最も信頼性の高い解決策であり、一度実装されてしまえばユーザーは何もする必要がないことに同意します
ランダムなトークンのアプローチはさておき、私は常にページとその依存ファイルのすべての完全なリロード(リクエスト)を強制的に行う傾向があります……私はちょうど私のカーソルをURLの最後に置き、Enterキーを押します。毎回うまくいきます…そして、私はIE 8を使用しています
1 Jerry 2010-08-12
F12 -> CTRL+RはIE9+の方が若干速いです。みんなが言っているように、IEはChromeのようにキャッシュのクリアはあまり賢くありません
1 Chris S 2012-08-22
これは少し奇妙に思えるかもしれませんが… 最近気づいたことの一つは、「リフレッシュ」の仕方によって、時々異なる結果が得られるということです。私は以下のような挙動を見てきました
F5 > はキャッシュから読み込み、Alt+D, ENTER > はキャッシュをバイパスして本当に更新します。 (Alt+Dはアドレスバーのクリックで代用可能)
1 eidylon 2009-12-10