我正在构建一个在线文本编辑器类型的应用程序(更多的功能)。
应用程序需要在dom中查找多个dom节点(用于分段更新等),并对节点进行更新。用户可能会对每个节点执行很多操作,所以我想永久地保留对节点的引用,而不是getElementById...etc。
我在想,随着dom节点数量的增加,脚本中的引用也会增加。
谢谢。
如果问题不清楚,请提出问题。
发布于 2014-11-06 09:43:58
好的,为了清楚和具体地说明,下面是我所做的。我通过控制台向一个沉重的堆栈溢出页面添加了一个按钮。
我的btn =document.createElement(按钮);
然后,在每次单击按钮时,我添加了一个对document.body的引用,如下所示:
mybtn.onclick =函数(){ myar=[];for(var i=0;i<10000;i++){ myari=document.body;}}
我执行了多次单击,并注意到每创建10000次引用,内存就会增加约0.5MB。
然后,我用一个空对象{}替换了document.body。
同样,每10000次引用的内存增加约为0.5MB。
因此,我们可以安全地得出结论,对dom节点的引用仍然是简单的引用,除非创建过度,否则不会影响内存。
PS :我用铬内存时间线做了内存分析。
发布于 2014-11-04 14:33:43
Javascript是按共享调用的,请参阅维基百科,因此它只是引用,没有元数据。
我不认为内存影响会太大,只要您不存储大量的对象。
https://stackoverflow.com/questions/26737377
复制相似问题