Silverlight 4アプリケーションで、現在MEFをロードオンデマンドXapsに使用しています。私は現在、キャッシュを使用してパフォーマンスを向上させています。 MEFがWebClientを使用してXapをダウンロードし、それがブラウザのダウンロードメカニズムを使用することは、私の理解であるため、そのキャッシュポリシーが適用されます。Silverlight、MEF、オンデマンドXapの読み込みとキャッシュについて
私のテストでは、私が見ている結果はやや混乱しており、結果はブラウザによって異なります。明らかに、最初のアクセスでは、キャッシュをクリアしてオンデマンドのXapsがサーバーから要求されます。そして、アプリケーションセッションの間、Xapsはこれだけ一度だけダウンロードされます。これまでのすべての良い。
しかし、Xapsがキャッシュされることを期待していた(または少なくとも期待していた)との間のブラウザセッション。しかし、誰 - 私は(シオマネキを使用して)次のことを守ってください。私はブラウザ(Ctrlキー+ F5)を更新すると
Internet Explorerの
その後、オンデマンドXapsは、サーバから要求されず、ロードされていませんローカルキャッシュから取得します。しかし、ブラウザを再起動すると、すべてが再びダウンロードされます。ブー。
のFirefoxとChrome
私はページ(Ctrlキー+ F5)を更新する場合は、オンデマンドXapsは、サーバーから再度要求されている - 何のキャッシングはまったく発生しません。ブー。そして明らかに、ブラウザを再起動してもキャッシングは発生しません。
私にとって理想的なのは、ブラウザがXapをロードする必要がある場合、新しいバージョンが存在するかどうかを確認するIf-Modified-Sinceヘッダーをサーバーに照会する場合、そうでない場合は、ローカルキャッシュからロードします。しかし、私のテストでは、If-Modified-Sinceヘッダーがサーバーに送信されていました。だから私の質問:
MEFを使ってこれを透過的に達成する方法はありますか?あるいは別のフレームワークですか?または、隔離されたストレージ(yuck)を使用して自分のキャッシングレイヤーをロールアップする必要がありますか?
オンデマンドのXapローディングのように見えますが、キャッシングは手間をかけずに済むので、これは単なるボックス外ではうまくいかないことに驚いています。
あなたがそれを理解して嬉しいです。参考までに、IIS Expressが公開されているので、Visual Studio Webサーバーを使用する理由はもう分かりません。 –