2011-06-14 14 views
9

ご存じのように、銀色のXAPパッケージを作成し、HTMLタグまたはasp.netページのobjectタグを使用して参照することができます。ブラウザはどのようにしてXAPパッケージのキャッシュを処理しますか?

初めてユーザーがページを参照するときにブラウザがXAPパッケージをダウンロードすると、同じページがリフレッシュされた場合、は同じXAPパッケージを再ダウンロードするのですか、またはキャッシュされたバージョンを使用しますか?

ユーザが既にあるため、ユーザが上だった前のページのダウンロードされた同じXAPパッケージとXAPパッケージを使用して別のページに移動した場合、は、ブラウザがキャッシュされたバージョンを使用したり、サーバーおよびダウンロードに行くんもう一度?

ブラウザは、すべての時間をキャッシュされたバージョンを使用している場合は、キャッシュされたバージョンとするとき、それは新しい変更で再構築されている可能性があるためXAPパッケージの新しいバージョンを使用するを使用するとき、それはどのように知っているのですか?それはパッケージのバージョン番号と関係がありますか?

答えて

9

XAPは、画像(PNG/GIF/JPGと同じ通常のリソースファイルとみなされます。

更新されXAPを確保するための他の方法をカバーし、この類似した問題のいくつかの良い解決策があります等)。ブラウザーは、HTTPキャッシュ条件が一致するまで新しいコピーをダウンロードしないため、ここで説明することができません。私たちが適応した唯一の解決策は、XAPのURLの後ろに "?tag"を付け加えることです。タグはブラウザにファイルをダウンロードさせるためのバージョン番号を置き換えることができます。

だから、だから、それが現在のバージョンのためにキャッシュされている場合でも、そこには問題はありませんが、新しいバージョンがサーバー側で変更されたとき、私たちは私たちを変更することができます。..のようななど

MySilverlightClient.xap?v1 
MySilverlightClient.xap?v2 

を私達のURLにタグを付けますタグv1をブラウザに新しいURLと見なさせ、キャッシュされていてもそれを再ダウンロードする必要があります。

+0

XAPを使用してすべてのHTMLファイルのバージョンタグを更新することを覚えておく必要があります。ほとんどの場合、1つのHTMLファイルにはたいていの場合のみ問題があります。なぜあなたのClientBinフォルダのキャッシュコントロールヘッダーを設定できないのですか? – AnthonyWJones

+0

私はキャッシュコントロールヘッダーの設定に多くの経験がありません、私はより多くを学ぶことができる方向に私を指摘できますか? – ActiveX

+0

URLについて、URLを変更すると、ブラウザがキャッシュからリソースを使用する代わりに、リソースを再ダウンロードすると言っていますか?これは簡単ですか? – ActiveX

2

質問の最初の部分に答えることができます。これは、ページを再訪/更新するときにブラウザがXAPのキャッシュされたコピーを使用することです。実際には、ブラウザに新しいコピーをダウンロードさせるのはかなり楽しいことです!

各ブラウザの動作は異なりますが、ソースファイルが変更されたときにIEがXAPを更新するのが最も頑固なようです。 Anthonyがコメントで指摘しているように、XAPは、ブラウザのデフォルトのコンテンツファイルのキャッシュ処理に従って、他のコンテンツファイルと同様に扱われています。

Making the Silverlight XAP file expire from browser cache programmatically

+2

IEは、サーバーがどのようなキャッシュ動作が必要かを明示できない場合、独自のルールを作成します。ほとんどのブラウザーは、サーバーが最初に正しいキャッシュ制御ヘッダーを提供していれば、かなり一貫して動作します。ほとんどの「XAPキャッシング」の質問に対する答えは、「PNGキャッシング」の質問とほぼ同じです。つまり、HTTPでキャッシングがどのように機能するかを理解することです。 – AnthonyWJones

+0

@AnthonyWJonesありがとうございます。 –

関連する問題