Javascript 使用大量DOM元素时浏览器速度变慢的原因
我知道这个问题听起来很琐碎,但我只想知道“浏览器”是如何处理DOM的,以及是什么让它在处理大量DOM元素时变得缓慢?这个尺寸差不多吗?如果DOM元素数量不多,但javascript对象数量多,该怎么办?它的反应还会很慢吗 我猜,如果有附加到javascript对象的事件,而我们不处理它们,它的响应速度会很慢,因为它必须执行所有事件处理程序(以顺序方式),但除此之外,“内存泄漏”会减慢浏览器速度的另一个原因是什么?(假设浏览器消耗了大量内存,但系统中仍有足够的内存可用) 更新:Javascript 使用大量DOM元素时浏览器速度变慢的原因,javascript,jquery,dom,browser,Javascript,Jquery,Dom,Browser,我知道这个问题听起来很琐碎,但我只想知道“浏览器”是如何处理DOM的,以及是什么让它在处理大量DOM元素时变得缓慢?这个尺寸差不多吗?如果DOM元素数量不多,但javascript对象数量多,该怎么办?它的反应还会很慢吗 我猜,如果有附加到javascript对象的事件,而我们不处理它们,它的响应速度会很慢,因为它必须执行所有事件处理程序(以顺序方式),但除此之外,“内存泄漏”会减慢浏览器速度的另一个原因是什么?(假设浏览器消耗了大量内存,但系统中仍有足够的内存可用) 更新: 令人惊讶的是,当浏
令人惊讶的是,当浏览器响应缓慢时,CPU和内存的使用总是在控制之下。如果一个页面加载了它的所有元素,并且它没有变化,那么无论DOM元素的数量多少,它都没有理由变慢。但是,如果您有一个动态页面,则会有大量操作导致整个布局重新绘制自身。这会被调用,并且会对性能产生显著影响。如果一个页面加载了它的所有元素,并且它没有变化,那么无论DOM元素的数量有多大,它都没有理由变慢。但是,如果您有一个动态页面,则会有大量操作导致整个布局重新绘制自身。这被称为,可能会对性能产生显著影响。最明显的是,您的浏览器消耗了您所有的内存,例如,在滚动过程中渲染某些内容时,它没有更多的内存。
如果没有内存问题,那么JohanP是write-没有原因。最明显的是,浏览器消耗了所有内存,并且在滚动期间渲染某些内容时,例如,它没有更多内存。
如果没有内存问题,那么JohanP是写的-没有理由。为什么浏览器在加载大量数据时会减慢速度?因为他们必须加载大量数据。就加载速度而言,大图像显然是罪魁祸首,但页面加载与传输的千字节数直接相关。如果你有很多代码,它将有一个很大的文件大小 至于JavaScript,有四个主要的泄漏原因:
函数foo(arg){
bar=“这是一个全局变量”;
}
setInterval(function(){})
这样的定时函数中声明变量时,该变量仍然存在于间隔的末尾var按钮:document.getElementById('button');
document.body.removeChild(document.getElementById('button')代码>
希望这有帮助 为什么浏览器在加载大量数据时会变慢?因为他们必须加载大量数据。就加载速度而言,大图像显然是罪魁祸首,但页面加载与传输的千字节数直接相关。如果你有很多代码,它将有一个很大的文件大小 至于JavaScript,有四个主要的泄漏原因:
函数foo(arg){
bar=“这是一个全局变量”;
}
setInterval(function(){})
这样的定时函数中声明变量时,该变量仍然存在于间隔的末尾var按钮:document.getElementById('button');
document.body.removeChild(document.getElementById('button')代码>
希望这有帮助 你是说FireFox吗?至少在内存问题上,这是最糟糕的。如果因为有大量数据而需要大量内存,这不是“内存泄漏”。@nnnnnn,好吧,这不是内存泄漏,但会影响浏览器性能。你是说FireFox吗?至少在内存问题上,这是最糟糕的。如果由于数据量大而需要大量内存,这不是“内存泄漏”。@nnnnnnnn,好吧,这不是内存泄漏,但会影响浏览器性能。我不是说“加载时间”。一旦它被加载,它对用户操作的响应就会变慢。比如说,滚动变得缓慢,打开下拉列表开始花费时间等等。“2……变量在间隔结束时仍然存在。”-不,它不存在。为什么会这样?setInterval调用函数,函数运行到完成,局部变量不保留。除非有一个嵌套函数导致闭包情况,或者创建了在函数外部引用的对象,这两个都不是setInterval固有的问题。我不是在说“加载时间”。一旦它被加载,它对用户操作的响应就会变慢。比如说,滚动变得缓慢,打开下拉列表开始花费时间等等。“2……变量在间隔结束时仍然存在。”-不,它不存在。为什么