9

ご存じのとおり、Silverlight XAP パッケージを作成し、HTML ページまたは asp.net ページで object タグを使用して参照できます。

ユーザーが最初にページを参照したときにブラウザーがサーバーから XAP パッケージをダウンロードするとき、ユーザーが同じページを更新した場合、同じ XAP パッケージを再ダウンロードしますか?それともキャッシュされたバージョンを使用しますか?

ユーザーが同じ XAP パッケージを使用する別のページに移動し、ユーザーが表示していた前のページが原因で XAP パッケージが既にダウンロードされている場合、ブラウザーはキャッシュされたバージョンを使用するか、サーバーに移動して再度ダウンロードしますか?

ブラウザがキャッシュされたバージョンを常に使用している場合、新しい変更で再構築されている可能性があるため、キャッシュされたバージョンを使用するタイミングと XAP パッケージの新しいバージョンを使用するタイミングをどのように判断しますか? パッケージのバージョン番号と関係がありますか?

4

2 に答える 2

9

XAP は、画像 (png/gif/jpg など) と同じ通常のリソース ファイルと見なされます。ここで説明する範囲外の HTTP キャッシュ条件が一致するまで、ブラウザは新しいコピーをダウンロードしません。私たちが採用した唯一の解決策は、XAP の URL の後に "?tag" を追加することです。タグはバージョン番号を置き換えることができ、ブラウザにファイルの再ダウンロードを強制します。

だから私たちは私たちのURLを次のようにタグ付けします..

MySilverlightClient.xap?v1
MySilverlightClient.xap?v2

現在のバージョンがキャッシュされていても問題はありませんが、サーバー側で新しいバージョンが変更された場合、タグ v1 を別のものに変更して、ブラウザーに新しい URL と見なさせて再ダウンロードさせることができます。キャッシュされていても。

于 2011-06-14T14:03:21.433 に答える
2

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

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

この同様の質問には、XAP が確実に更新されるようにするための他の方法をカバーするいくつかの優れた解決策があります。

Silverlight XAP ファイルをプログラムでブラウザー キャッシュから期限切れにする

于 2011-06-14T13:58:56.660 に答える