我只是需要一些建議,如果這是明智的。我主要通過AJAX請求加載我的網站數據。爲了節省加載時間和服務器調用,我將所有加載到全局對象的數據保存起來,如果用戶再次選擇該頁面,則只是回收該數據。將所有加載的數據存儲在一個Javascript對象上
我想知道,如果它是明智的緩存整個網站到一個對象,例如:
var page = ['level 1','level 2','level 3','level 4'];
var mysiteobj = [];
if (page[0] == 'level 1')
if (!mysiteobj['level 1'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1'] = data; /*display data*/ });
else /*display mysiteobj['level 1']*/
if (page[1] == 'level 2')
if (!mysiteobj['level 1']['level 2'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1']['level 2'] = data; /*display data*/ });
else /*display mysiteobj['level 1']['level 2']*/
...etc
...等等。爲了澄清相當奇怪的符號,'級別1'是用戶可能查找的所有地理區域,'級別2'是用戶可能看到的地理區域中的所有部門,'級別3'將是部門中的類別在地理位置,並且說'級別4'將是地理位置中部門類別中列出的產品或條目。
現在,我的方法是,我有一個包含所有地理區域的對象,每次載入一個新的地理位置時,第二個對象將被新的部門列表覆蓋,第三個對象包含我的類別和第四個我的列表/產品。
如果這是有道理的,請指教。我猜這個簡化的問題是,在一個對象變得笨拙和陷入瀏覽器之前,你能夠創建一個對象有多大?
當頁面或用戶閒置時,您可以「預加載」所有內容。就像瀏覽第1頁時所說的那樣,在後臺加載其他人。 – Joseph 2012-04-04 01:29:53
@Joseph - 你可以,但是你打了很多電話,可能對用戶沒有任何好處,如果他們在移動設備上,併爲他們的帶寬付費,那麼這將是一個問題。另外,如果用戶僅查看第2級中的一個部分,然後再加載第2級中的所有內容,並且大多數不打算使用時都會令人討厭,這也將耗盡內存。 – 2012-04-04 01:33:18
好點。我從來沒有想過移動。 – Joseph 2012-04-04 01:36:49