jQuery setInterval каждые 300 миллисекунд, слишком большая нагрузка на браузер? - PullRequest
0 голосов
/ 26 февраля 2012

У меня возникли проблемы с правильным подключением этого плагина к элементам, загруженным 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 и запускаю то же самое в этом вызове, он присоединяет его к этому элементу и другому элементу.

Функция setInterval добавляет его ких всех тоже.

1 Ответ

1 голос
/ 26 февраля 2012

Неэффективно не кэшировать объект jQuery и вызывать его поиск в DOM каждые 300 мс.

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

nanoTimer();

Вызов функции после AJAX также

...