1

Rick Strahlsの例に似た手法を使用していますが、Googleのスピードトレーサーを使用していることに気づきました。

リソースのキャッシュ:@ 10.88s-次のリソースは、InternetExplorerのほとんどのバージョンでキャッシュを無効にする「Vary」ヘッダーを指定しています。次のリソースの「Vary」ヘッダーを修正または削除します。..。

問題は、InternetExplorerのどのバージョンですか?Internet Explorerの初期バージョンを除くすべてのブラウザーでVaryのみを出力する方法を含めると、これは解決されますか?

If AllowsCacheingOnVaryHeader() Then
  Response.AppendHeader("Vary", "Content-Encoding")
  Response.AppendHeader("Vary", "Accept-Encoding")
End If

関数「AllowsCacheingOnVaryHeader()」で-正確に何をチェックする必要がありますか?7、8、または9より前のIEのすべてのバージョン?

4

1 に答える 1

3

この背景については、EricLawを参照してください。

Response.AppendHeader("Vary", "Accept-Encoding")

大丈夫なはず。最新のIE6はを無視する必要がありますVary: Accept-Encoding。古いIE6SPはそうではなかったと思います。

Response.AppendHeader("Vary", "Content-Encoding")

それが何のためにあるのかわかりません。Content-Encoding応答ヘッダーは(通常は)要求ヘッダーではないので、どのように使用できますVaryか?それは確かにIEをトリップします、あなたはそれを単に削除してそれで終わらせることができますか?

質問に答えるために:いいえ、IE7はVary同じ基礎となるwininetコードを使用しているため、IE6reと同じように壊れています。試したことはありませんが、IE8も同じだと思います。IE7は、ETagが提供された場合の動作はそれほど悪くありませんが(リソースを完全に再フェッチするのではなく再検証します)、基本的なバグは変更されていません。

于 2009-12-10T15:37:15.707 に答える