将所有加载的数据存储到一个Javascript对象中
Storing All Loaded Data Onto One Javascript Object
我只需要一些关于这是否明智的建议。我主要通过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"则是地理区域内部门中类别中列出的产品或条目。
现在,我的方法是,我有一个包含所有地理区域的对象,每次加载新的地理区域时,第二个对象都会被新的部门列表覆盖,第三个对象包含我的类别,第四个包含我的列表/产品。
如果这有道理,请提出建议。我想简化的问题是,在一个对象变得笨拙并阻碍浏览器之前,你能把它做成多大?
如果还没有加载,为什么不根据需要加载数据呢。
例如,可以加载级别1。
然后,当用户选择级别2时,如果还没有,则加载该级别,然后继续。
因此,你可以保留已经加载的内容,但只要通知他们你正在检索数据,如果这需要时间,否则人们可能会理解你正在加载它
就我个人而言,我会向用户显示有一个加载请求,这样他们就知道发生了什么
整个站点的预加载是一种浪费。
考虑到让ajax请求返回大数据集是不明智的。。。。
我认为你可以将这些数据存储到Redis/Memcached服务器中,并制作一个javascript函数来捕捉你想要的东西。将这么多数据放入全局变量并让用户为此付费是不明智的。
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 有没有一个javascript图形绘制库可以进行气球树布局
- 如何将一个JavaScript函数回调为多个函数
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 多次调用另一个javascript函数中的javascript函数
- HTML外部javascript加载另一个javascript
- 在一个javascript文件中为整个网站创建标签
- 在任何AJAX调用之前触发一个javascript函数
- 如何用另一个Javascript更改Javascript函数值
- 动态创建一个javascript/jquery多级数组
- 将变量值从一个javascript传递到另一个javascript
- 获取一个javascript对象attr's
- 是一个javascript bookmarklet,可以设置破坏跨域安全的域cookie
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- 添加一个javascript函数来下载elfinder上的事件
- 有没有一个Javascript代码可以看到你的缓存有多满
- 使用jenkins从不同文件夹中的文件构建一个javascript文件
- 是否有一个javascript库来解析简单的查询
- 一个javascript实现base64图像编码并将结果写入文本文件
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器