2012-06-11 30 views
3

我正在使用AppEngine和Restlet將我的數據作爲客戶端在瀏覽器中提供給GWT應用程序。 Restlet-GWT版本使用GWT-RPC序列化作爲下面的傳輸格式。 GWT-RPC序列化依賴於客戶端和服務器之間的共享源來序列化/反序列化。點擊服務器後,瀏覽器仍然使用緩存版本

現在,添加新的屬性到共享源類之一後,反序列化開始失敗。 AppEngine服務器使用響應HTTP 200/OK正確處理了請求,併發送了正確的序列化對象。客戶每次都ch咽。

過了一段時間,我發現瀏覽器是試圖反序列化我的對象的緩存副本(沒有新添加的屬性),因此browswer中的反序列化失敗。

現在的問題:爲什麼瀏覽器使用緩存副本,如果服務器無論如何被擊中?

IMO,這打破了緩存的目的/優點,服務器和網絡資源正在消耗,新鮮的結果不被使用?如果browswer決定使用緩存副本,我預計不會往返服務器。

thx!

+0

我部署一個新版本的AppEngine時也遇到這個問題,什麼是我的選擇,以防止這種情況發生? – koma

+0

是的,我確實停止/啓動應用程序,重新編譯和所有... – koma

回答

1

您的瀏覽器將GWT爲您編寫的JavaScript應用程序保存在緩存中。簡單的解決方案,幾次(ctrl + F5或cmd + shift + R)對你的頁面進行一次硬刷新。

如果你想避免這種情況,請參閱this question

+0

所以瀏覽器緩存編譯的JavaScript,而不是XHR請求的有效載荷?這聽起來像是一個有效的解釋! – koma