我只需要一些关于这是否明智的建议。我主要通过 AJAX 请求加载我的站点数据。为了节省加载时间和服务器调用,我将所有加载到全局对象的数据保存起来,如果用户再次选择该页面,则只回收该数据。
我想知道将整个站点缓存到一个对象上是否明智,例如:
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 级”将是地理区域中部门类别中列出的产品或条目。
现在,我的方法是,我有一个包含所有地理区域的对象,每次加载新的地理区域时,第二个对象都会被新的部门列表覆盖,第三个对象包含我的类别,第四个对象包含我的列表/产品。
如果这有道理,请指教。我想简化的问题是,在对象变得笨拙并阻塞浏览器之前,您可以制作多大的对象?