我正在 Backbone.js 中构建一个单页应用程序,旨在扩展到 10K 照片。我正在尝试测试 Chrome 的限制,看看我是否会遇到这个 webkit 错误:
我正在使用和 instanceof Backbone.View 将 JPG 加载到 DOM 树中,并调用以下命令来删除:
// myThmbnailView instanceof Backbone.View
myThumbnailView.undelegateEvents();
myThumbnailView.remove();
ThumbnailView 没有声明事件处理程序,所有内容都委托给父级 GalleryView。
根据 ChromeDevTools 上的时间线,我的页面上有 1000 个 DOM 节点(每个 ThumbnailView 包含 20 个 DOM 元素),但是当我遍历缩略图并删除它们时,它们不会被释放。这是一个快照
根据时间轴,从页面中删除所有 DOM 元素的最终调用$("body").children().remove()
仍然给我留下了 18K DOM 节点。但是,GC 似乎可以释放大量内存。
我有孤立节点还是时间轴错误?我是否错误地处理了这个问题?