javascript - setInterval() 如何影响性能?

标签 javascript jquery performance web-applications

我们正在构建一个使用 Twitter Bootstrap 作为框架的网络应用程序,但在显示/隐藏工具提示时遇到问题。除了尝试找到实际问题的解决方案外,我对我们同时使用的解决方法有疑问:

在性能方面,使用 setInterval() 通常是个坏主意吗?

我如何衡量由此造成的性能影响?

是否有更好的方法来不断检查元素的存在并删除它们?

// temporary workaround to remove unclosed tooltips
setInterval(function() {
    if ( $('.tooltip.in').length > 1 ) {
        $('.tooltip').remove();
    }
}, 1000);

最佳答案

如果您真的,真的担心性能,使用实时节点列表可能会更快:

var tooltipInNodes = document.getElementsByClassName("tooltip in");
var tooltipNodes = document.getElementsByClassName("tooltip");

setInterval(function() {
    if ( tooltipInNodes.length > 1 ) {
        $(tooltipNodes).remove();
    }
}, 1000);

虽然这不太可能产生太大的影响,并且如前所述,使用长间隔的 setInterval(1 秒大,4 毫秒小)不太可能产生任何重大影响。

关于javascript - setInterval() 如何影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104014/

相关文章:

javascript - React ES6组件继承: working,但不推荐?

javascript - 如果 ID 部分匹配,则选择一个元素

javascript - jQuery Blueimp fileupload 插件删除文件而不需要先选中复选框?

mysql - 当 EXPLAIN 看起来很好时,为什么这个查询要检查这么多行?

javascript - 使用 javascript 更改点击时的选择值

javascript - 防止通过引用创建的对象在原始对象更改时发生更改

javascript - 为什么 Jquery $.ajax 即使调用成功也会在函数调用时触发所有 statusCode

javascript - 同步多个YouTube视频

performance - 将 PostgreSQL 从 9.1 升级到 9.4 后性能下降

sql - sqlite_stat1表的解释