我正在使用rangy library并阅读detach
的文档:“在不再使用时会破坏范围。”
目前我没有好的方法可以在我的代码中为我detach
创建的某些范围调用cloneRange
。因为它是一个编辑器,我正在研究这个代码可以被称为负载次。
我是否应该担心内存消耗,因为我没有调用detach
或垃圾收集最终会收集未引用的范围?
基本上归结为这个问题:Rangy是否会使用cloneRange
保持对已创建范围的引用,以防止垃圾收集正常工作?
答案 0 :(得分:1)
实际上有两种detach
方法:原生范围上的方法(由document.createRange()
创建的范围),以及Rangy在其范围对象上公开的方法。
detach
detach
完全存在的原因是它由DOM Level 2强制执行。
现在,按照bug report中的讨论,detach
的想法是它应该使浏览器能够释放计算资源。只要使用范围,浏览器就必须跟踪它。根据错误报告中的讨论判断,以下情况似乎是正确的: