我在前端工程方面相當缺乏經驗,所以我很抱歉如果這樣做太天真或太寬泛。在瀏覽器中緩存對象時,多少內存太多?
我的應用程序通過AJAX獲取4k JSON對象。爲了防止重複的HTTP請求,返回的JSON緩存在全局窗口範圍內的對象中。有沒有關於這種事情的最佳實踐?
我意識到緩存大小的合理限制將取決於瀏覽器,操作系統,硬件和其他因素。我正在尋找退化的UI響應能力。
雖然有什麼好的經驗法則?
我在前端工程方面相當缺乏經驗,所以我很抱歉如果這樣做太天真或太寬泛。在瀏覽器中緩存對象時,多少內存太多?
我的應用程序通過AJAX獲取4k JSON對象。爲了防止重複的HTTP請求,返回的JSON緩存在全局窗口範圍內的對象中。有沒有關於這種事情的最佳實踐?
我意識到緩存大小的合理限制將取決於瀏覽器,操作系統,硬件和其他因素。我正在尋找退化的UI響應能力。
雖然有什麼好的經驗法則?
這很大程度上取決於您的任務以及您希望擁有的大部分用戶。
如果你有不錯的3D遊戲,那麼即使500MB將是確定的(但不是所有的JSON緩存)
現代瀏覽器需要從一開始的內存50-100MB。 因此,在大多數情況下,您的所有javascript對象都應該是50MB,我想50MB足夠大,適用於任何簡單(twitter)/平均(gmail)web應用程序。
此外,RAM現在每GB花費5-7美元。
請記住,4k的字符串化JSON將變成10-50kb的對象,甚至字符串形式將需要將近8k(如果您使用utf-8進行http傳輸),因爲js引擎使用UTF-16內部字符串表示。
您是否考慮讓瀏覽器通過在返回的JSON上使用HTTP緩存指令而不是顯式記憶來決定緩存多少? – 2012-03-02 15:42:37
這是一個偉大的觀點,弗朗西斯。我有一些問題通過Django在整頁加載中實現HTTP緩存指令(我認爲是Google Analytics)。我想我是爲了控制目的去記憶,但我想這是錯誤的。 – Ben 2012-03-02 15:56:12
這不一定是錯的,只是需要考慮。 – 2012-03-02 16:18:22