javascript - 每秒遍历每个 DOM 元素 40 次是否会导致速度较慢的计算机出现性能问题?

标签 javascript jquery html performance

setInterval(function(){
    $("*").each(function(obj){
        if ($(this).data("x"))
            $(this).css({left:$(this).data("x")()});
        //... more code for y, w, h, x2, y2, etc...
    }
},25);

它在我的电脑上运行完美——我担心的是:如果没有优化就这样离开,这段代码是否会导调用脑性能较差的用户性能显着下降,因为它每秒迭代每个 DOM 元素 40 次?还是可以接受?

注意:关键是为了更容易创建一个函数来协调对象的位置,例如:$(myObj).data("x",function(){ return sin(Date.now ()/1000)*50; }) 应该使对象摆动。

最佳答案

它肯定会影响性能,尤其是当您有很多很多元素时。也是每秒40次?这似乎很多。我不确定使用选择器会快多少,因为这也可能很昂贵。

也许尝试使用 $("[data-x]") 作为选择器,或者使用更具体的父选择器:$("#container").find('[数据-x]')

关于javascript - 每秒遍历每个 DOM 元素 40 次是否会导致速度较慢的计算机出现性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058212/

相关文章:

javascript - 访问对象内部的数组

javascript - 如何使用 raphael.js 中的 paper.path 对象创建动态椭圆

javascript - 显示日期选择器的可点击 div

css - 为什么相对定位的div会覆盖固定的div?

javascript - 在文本区域中使用@符号标记功能的angularjs

javascript - GeoServer - DWITHIN 未正确过滤点

javascript - Expo + React Native : Draw line between coordinates on two type of views

javascript - 如何对对象值数组求和并将它们分配给相关的键名

jquery - 如何在 div #content 加载时显示 div #loading

c# - 如何像 CSS 附加示例中那样设置 WPF 按钮样式