保留对dom节点的引用:内存问题



我正在构建一个在线文本编辑器类型的应用程序(具有更多功能)。

应用程序需要在dom中查找大量dom节点(用于para更新等)并更新节点。用户可能会在每个节点上做很多操作,所以我想永久保留对节点的引用,而不是getElementById。。。等

我在想,随着dom节点数量的增加,脚本中的引用也会增加。

  1. 走这条路会对记忆产生什么影响?

  2. 更确切地说,保存在内存中的引用是简单的引用吗或者带来一些沉重的元数据?

谢谢。

如果问题不清楚,请提问。

好的,为了让事情变得清晰具体,下面是我所做的。我通过控制台在一个沉重的堆叠页面上添加了一个按钮。

my btn=document.createElement('button');

然后每次点击按钮,我都会添加一个文档参考。正文如下:

mybtn.onclick=函数(){myar=[];for(var i=0;i<10000;i++){myar[i]=document.body;}}

我进行了多次点击,注意到每创建10000个引用,内存就会增加约0.5 MB。

然后我用一个空对象{}替换了document.body。

并且存储器的增加再次是每10000个引用大约0.5MB。

因此,我们可以放心地得出结论,对dom节点的引用仍然是简单的引用,除非创建过度,否则不会影响内存。

附言:我用chrome内存时间线做了内存评测。

Javascript是通过共享调用的,请参阅Wikipédia,所以它只是引用,没有元数据。

我不认为内存的影响会太大,只要你没有存储大量的对象。

最新更新