图片相关代码<!DOCTYPE html><html><head> <title>test</title></head><body><div id="test"></div><script> var oTest = document.getElementById('test'); var i = 0; setInterval(function() { oTest.innerHTML = i++; }, 10);</script></body></html>描述遇到一个页面 crash 的问题,在页面 creah 之前打印了 Chrome 的 window.performance 发现所有被使用的 js 堆栈内存(sedJSHeapSize)并没有超过当前 js 堆栈内存总大小(totalJSHeapSize)。现在怀疑是不是页面 DOM 数超过阈值导致页面 crash,发现页面中导致 DOM Nodes 不断上升的原因是使用了 innerHTML,虽然最后都被垃圾回收了,会不会因为某一次不成功的垃圾回收导致 DOM 数超过阈值。问题问题一: DOM Nodes 增加的原因主要是由于DOM未被回收,主要参考,但是 innerHTML 为什么会导致 DOM 节点的增加?问题二: 如何像打印window.performance那样打印出 DOM Nodes(包括未回收的),document.getElementsByTagName("*").length只能打印出页面上现有的,我可以在页面crash前打印出该数排查页面 crash是不是由于 DOM 数超过阈值引起的
添加回答
举报
0/150
提交
取消