2010-12-20 60 views
1

基本要求如何安裝Silverlight的XAP緩存工作同樣在所有瀏覽器

我可以在瀏覽器或外的瀏覽器中運行一個應用程序SL。我希望瀏覽器:

  • 緩存XAP文件
  • 負荷,如果沒有改變,或者如果它已經改變了重新下載緩存的XAP。

更多細節

明明設置一個未來expires頭解決了緩存問題,但我不能強迫用戶下載最新版本。通常我只是將一個查詢字符串添加到URL(例如url?v=1),但我無法做到這一點,因爲這打破了瀏覽器外的功能。例如,應用程序認爲它實際上並未安裝。

沒有緩存

如果我設置Cache-Controlno-cache,Chrome和Firefox正確地發送一個請求到服務器的XAP但使用高速緩存如果返回304。 IE8只是像Safari一樣再次下載文件。

必重新驗證

設置Cache-Controlmust-revalidate再正常工作在Chrome和Firefox,但Safari瀏覽器始終再次下載XAP而IE8總是使用緩存。

我如何設置這個問題開始時描述的工作?

回答

1

我不確定Chrome/Firefox是否嚴格「正確」,您畢竟沒有告訴瀏覽器它應該緩存內容或甚至內容可緩存。

而不是緩存嘗試「緩存控制:max-age = 15」。看看是否讓IE相信它應該緩存儘管它的大尺寸的內容(這是它最初沒有緩存的原因)。

對於OOB安裝,請使用Application對象的CheckAndDownloadUpdateAsync方法。請注意,您需要通知用戶在下載更新後重新啓動應用程序。

+0

謝謝,這是爲IE做的伎倆。 Safari總是從服務器重新加載它,但我想我可以忍受這一點。我在更新oob時沒有問題,但是如果您更改了網址,則瀏覽器內應用程序會錯誤地檢測到安裝狀態(例如,顯示安裝按鈕等) – 2010-12-21 14:54:57

+0

實際上Mac上的Safari緩存確實有效。它只在Windows上沒有,我們都知道沒有人在Windows上使用Safari :)。所以問題解決了。再次感謝。 – 2010-12-21 15:09:13

相關問題