.NET 3.5と新しいインフラストラクチャを使用するために、.NET2.0Webフォームアプリケーションを移行しています。UpdatePanel内にGridViewがあり、その行に対してアクションを実行するためのアイコンを含むActions列があります。私がIE6で抱えている問題は、画像がキャッシュされていないことです。ロードするアイコンが9個x100行=900個あるため、これは[アクション]列で特に顕著です。Internet Explorerは、これらの画像がすべて読み込まれるまで、900からカウントダウンします。
この問題は、UpdatePanel内にあるGridView内の画像に限定されているようには見えません。これは、ページが更新されるたびにヘッダー画像が再読み込みされるのを確認できるためです。
私は自分の研究をしました:
- Internet Explorerの「残りのn個のアイテム」の問題を解決するためのアイデアはありますか?-これは別の問題です。
- IE6様:画像をキャッシュしてください。-これですべての問題が解決すると思いましたが、そうではありませんでした。画像をdiv内の背景画像として設定しようとしましたが、成功しませんでした。また、すべてのアイコンをユーザーコントロール内に配置し、GridViewが読み込まれる前にこれを含めてみました。
- IIS構成を比較するための古いインフラストラクチャ(この問題は存在しませんでした)があり、それらはまったく同じです。
- Fiddlerを使用すると、要求されている各画像をイライラするほど見ることができます。キャッシュヘッダーは
Cache-Control: private
です。Date: Tue, 29 Mar 2011 07:35:53 GMT
このキャッシュヘッダーで(1時間前に)気づきました。それはそれと関係がありますか? - このキャッシュの問題は断続的に発生するようです。初めてページをロードしますが、画像はキャッシュされないため、最大1000個の画像が個別にロードされます。ページを更新すると、画像がキャッシュされます。すべての一時ファイル/オフラインコンテンツを削除すると、画像は再び個別に読み込まれます。
- 最初は、これはアプリケーションを新しいインフラストラクチャにデプロイするときにのみ発生すると思いました(リクエストはフォレスト間で行われます)が、すべてのイメージがローカルの場合はローカルマシンでも発生します。
- これはIE6でのみ問題になります!!!
他に情報があれば教えてください。
更新1
すでに試みられて成功しなかった回避策:
- @AfshinGhによって提案されたハンドラーソリューション。UPDATE2回答のコードは実際に機能します。以前に別のバージョンが試行されている必要があります。
- @BlueSteelによって提案された隠し画像ソリューション。
更新2
他の解決策のいくつかはここで機能したかもしれませんが、私は@AfshinGhによって提供されたコードを使用しました。