2010-12-20 4 views
1

基本要件セットアップSilverlightのXAPキャッシュにすべてのブラウザで同じように機能する方法

私は、ブラウザまたはアウトオブブラウザで実行することができSLのアプリを持っています。

  • キャッシュXAPファイル
  • ロードそれは変わっていないか、それが変更された場合、それを再ダウンロードする場合はキャッシュからXAP:私は、ブラウザにしたいです。明らかに将来expiresヘッダを設定

詳細

は、キャッシングの問題を解決しますが、その後、私は、最新バージョンをダウンロードするようにユーザーに強制することはできません。通常はURLにクエリ文字列を追加するだけですが(例えばurl?v=1)、ブラウザ外の機能が損なわれるため、これを行うことはできません。実際にはアプリがインストールされていないと考えているなどです。

キャッシュなし

私はno-cacheCache-Controlを設定した場合、ChromeとFirefoxが正しくXAPのためにサーバに要求を送信したが304が返された場合は、キャッシュを使用しています。 IE8はSafariと同じようにファイルをもう一度ダウンロードします。 must-revalidateからCache-Controlの設定

、再検証する必要があり

再びChromeとFirefoxで正しく動作しますが、IE8は常にキャッシュを使用しながら、Safariは常に再びXAPをダウンロードします。

この質問の冒頭に記載されているようにこれを設定するにはどうすればよいですか?

答えて

1

Chrome/Firefoxが厳密に「正しい」とは確信していませんが、結局のところ、コンテンツをキャッシュする必要があること、またはコンテンツがキャッシュ可能であることをブラウザに通知していないことがあります。

no-cacheの代わりに、 "Cache-Control:max-age = 15"を試してください。 IEが大規模であるにもかかわらずコンテンツをキャッシュしなければならないことをIEに確信させるかどうかを確認してください。

OOBをインストールする場合、ApplicationオブジェクトのCheckAndDownloadUpdateAsyncメソッドを使用してください。アップデートがダウンロードされたら、アプリケーションを再起動するようユーザーに通知する必要があります。

+0

ありがとう、それはIEのトリックを行っています。 Safariは常にサーバーからそれをリロードしますが、私はそれで生きていくことができると思います。私はoobのアップデートに問題はありませんが、あなたがURLを変更するとブラウザ内のアプリケーションでインストールステータスが間違って検出されます(例えば、インストールボタンを表示するなど) –

+0

MacのSafariで実際にキャッシュが動作します。それはWindows上ではありません。私たちは誰もWindows上でSafariを使用していないことを知っています:)。だから問題は解決した。再度、感謝します。 –

関連する問題