據我知道這是不可能實現的追隨者,但是隻有專家可以證實這一點:緩存JavaScript文件的執行
我有頁碼1,對於一些用戶和應用程序數據的請求一旦頁面加載,第2頁使用相同的腳本,並且請求相同的信息將是浪費的。
我知道瀏覽器緩存腳本,我的問題是如果它緩存執行(數據)以及。
頁面不共享相同的佈局,所以不可能通過ajax重新加載頁碼2。
據我知道這是不可能實現的追隨者,但是隻有專家可以證實這一點:緩存JavaScript文件的執行
我有頁碼1,對於一些用戶和應用程序數據的請求一旦頁面加載,第2頁使用相同的腳本,並且請求相同的信息將是浪費的。
我知道瀏覽器緩存腳本,我的問題是如果它緩存執行(數據)以及。
頁面不共享相同的佈局,所以不可能通過ajax重新加載頁碼2。
瀏覽器不會自動緩存腳本的結果(這將是嚴重的怪異),但你可以通過設置(和檢查)cookies,使用現代瀏覽器的新local storage stuff等注但是使用Cookie,它們會在每次請求時發送到服務器,因此會導致請求的大小增加;如果你可以使用本地存儲,那麼。
我不會在這裏推薦cookie,因爲它們會在將來的每一個請求中傳輸。根據要存儲的數據的形狀,這可能會導致一些不必要的流量。 – Sirko 2012-03-26 14:11:17
@Sirko:我想說我們沒有足夠的信息來知道他們是否是一個合適的選擇 - 但這是加強OP的好點。 – 2012-03-26 14:14:09
如果您使用某種類型的客戶端存儲,如localStorage
(有關更多詳細信息,請參閱MDN docu),您可以「緩存」數據。
瀏覽器本身也可能會在內部緩存您的請求,因爲ajax請求與瀏覽器發出的任何其他請求(html文檔,圖像等)沒有區別。因此,根據您的確切請求(包括所有參數),瀏覽器可能實際使用緩存版本的請求以避免不必要的呼叫。然而,在這裏,通常的緩存限制和屬性適用,所以你可以而不是依靠這種行爲!
如果您的「頁面」是新的URL,瀏覽器將不會自動緩存您的數據。
但它肯定是可能爲你實現它在幾個方面 之一是在支持HTML5
新的瀏覽器使用本地存儲的另一個是寫你的應用程序,使得它具有多個視圖的單一頁面和轉換 使用AJAX替換頁面的部分(視圖)。
這種技術正變得越來越流行。
我強烈推薦閱讀Alex MacCaw的「Javascript Web Applications」來理解JavaScript MVC以及如何使用javascript創建客戶端(基於瀏覽器)的控制器,並在瀏覽器中查看和管理緩存,狀態等。另外,也要看看框架,如Backbone.js的
我會避免緩存中的數據,除非有嚴重的性能問題(和,然後,而不是消滅它緩存的性能問題)。這是premature optimization。當數據被緩存時,必須考慮所有類型的場景(陳舊的數據,刪除的數據)(除非數據是靜態的,但是不管怎麼說,它都是不相關的)。
瀏覽器不(但實際上不能)緩存結果;一般來說,這並沒有多大意義。但是,您可以將某些計算的結果放入Cookie或本地存儲在瀏覽器中。 – Pointy 2012-03-26 14:06:35