jQuery setInterval每300毫秒,浏览器负载太大?

时间:2012-02-26 02:58:20

标签: jquery ajax plugins setinterval

我一直无法将此插件正确地附加到ajax加载的元素上,但我无法弄清楚它们有时会被附加的原因,有时却没有。但仅适用于此特定插件。所以我的问题是,如果setInterval运行的时间大约是每300毫秒,那么如果它只是将jquery插件附加到页面上可能存在或不存在的某些元素上,会导致浏览器变得迟缓。

像:

setInterval(function(){
    $(".nano").nanoScroller();
}, 300);

我最初尝试做的是:

$.ajax({
type: "POST",
 url: "ajax/load/notifications/notifications.php",
 cache: false,
 success: function(html){
 $(".notification-container").html(html);
 $(".nano").nanoScroller();

 }
 });

然而它没有附加它(无论如何,一些部分正在改变,但不是主插件)

但是,当我调用另一个ajax事件,并在该callout中触发相同的事情时,它会将它附加到此元素和另一个元素。

setInterval函数也将它们全部添加到它们中。

1 个答案:

答案 0 :(得分:1)

不缓存jQuery对象并导致每隔300ms对其进行一次DOM搜索是没有效率的。

function nanoTimer() {
    if (timer) {
        clearInterval(timer);
    }
    var $nano = $('.nano');
    timer = setInterval(function() {
        $nano.nanoScroller();
    }, 300);
}

nanoTimer();

ajax之后的调用函数