2011-01-13 71 views
1

我最近了解到,UpdatePanel使用了添加了「no-cache」頭的HTTP請求。這會導致其中的圖像在每個UpdatePanel更新中下載。我不想要這個。帶有瀏覽器緩存的UpdatePanel

那麼我該如何預防呢?

我曾考慮過擴展UpdatePanel控件並嘗試刪除請求的「no-cache」部分,但肯定必須有更優雅的解決方案。

回答

0

UpdatePanel只會將no-cache標頭放在自己的更新請求上,而不是對其他資源(如圖像)的請求。這些由瀏覽器像常規請求一樣處理,即使它們在UpdatePanel內容中。
也許你只是忘了把Expires標題放在你的圖片上?

1

使用jquery手動替換面板的內容。我已經做了很多。我一般用的是使用用戶控件,然後該模式使用這樣的代碼捕獲文本:

var stringBuilder = new StringBuilder(); 
using (var tw = new TextWriter()) 
{ 
     var htmlWriter = new HtmlWriter(tw); 

     userControl.RenderControl(htmlWriter); 

     return stringBuilder.ToString(); 
} 

這是結果我回到PageMethod,我設置的HTML中指定的DIV,和邦 - 你完成了。

與開發中的許多事情一樣,您最終會用自動化工具打開牆壁,並且必須在抽象級別下拉以使其工作。祝你好運!

+0

這是一個很好的選擇,但沒有回答這個問題。 – 2011-01-14 08:06:46

+1

我認爲這是您獲得更好控制所需的唯一方法。 – 2011-01-14 13:48:17