我在javascript中开发了一个文件管理器类型的应用程序。我执行ajax请求以获取目录的内容,我想将其缓存到变量中,以防用户导航到不同的目录,然后返回(所以我不必再次请求列表) 。但是我应该在变量中存储什么? HTML元素对象还是HTML字符串?哪个使用较少的浏览器内存?
答案 0 :(得分:1)
严格地说,字符串会占用较少的浏览器内存。
但是我总是建议缓存DOM元素而不是字符串。 HTML只应用于从服务器获取内容,而不能用于客户端操作。
重新附加一组独立的DOM节点将近乎即时,并且这些节点仍然可以附加额外的数据和事件处理程序,如果节点已被序列化为HTML然后再次反序列化,则会丢失这些数据和事件处理程序。
答案 1 :(得分:1)
我建议你只存储JavaScript对象。我不认为渲染HTML节点需要花费很多时间。但节点本身是相当重的对象。存储HTML字符串完全没有意义,因为浏览器仍然必须将其解析为DOM节点。所以它等于存储JS对象。
从内存管理的角度来看,管理DOM节点要困难得多。很容易忘记将事件处理程序分离为null-ify对节点的引用。所以,恕我直言,完全清理DOM节点并利用它们比管理所有情况更容易。