缓存 HTML 个字符串或 DOM 个元素?

Cache HTML string or DOM elements?

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

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

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

重新附加一组分离的 DOM 节点将近乎瞬时,并且这些节点仍然可以附加附加数据和事件处理程序,如果节点已序列化为 HTML 和然后再次反序列化。

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

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