缓存HTML字符串或DOM元素?

时间:2015-01-11 21:14:15

标签: javascript jquery html ajax memory-management

我在javascript中开发了一个文件管理器类型的应用程序。我执行ajax请求以获取目录的内容,我想将其缓存到变量中,以防用户导航到不同的目录,然后返回(所以我不必再次请求列表) 。但是我应该在变量中存储什么? HTML元素对象还是HTML字符串?哪个使用较少的浏览器内存?

2 个答案:

答案 0 :(得分:1)

严格地说,字符串会占用较少的浏览器内存。

但是我总是建议缓存DOM元素而不是字符串。 HTML只应用于从服务器获取内容,而不能用于客户端操作。

重新附加一组独立的DOM节点将近乎即时,并且这些节点仍然可以附加额外的数据和事件处理程序,如果节点已被序列化为HTML然后再次反序列化,则会丢失这些数据和事件处理程序。

答案 1 :(得分:1)

我建议你只存储JavaScript对象。我不认为渲染HTML节点需要花费很多时间。但节点本身是相当重的对象。存储HTML字符串完全没有意义,因为浏览器仍然必须将其解析为DOM节点。所以它等于存储JS对象。

从内存管理的角度来看,管理DOM节点要困难得多。很容易忘记将事件处理程序分离为null-ify对节点的引用。所以,恕我直言,完全清理DOM节点并利用它们比管理所有情况更容易。