Всегда актуальный контент с использованием AJAX - PullRequest
1 голос
/ 18 августа 2011

В настоящее время я использую ajax-запросы каждые 10 минут для обновления определенного контента и других временных интервалов для других.

Я делаю это с помощью jQuery:

  • При перемещении мыши, активная страница проверяется
  • Если активная страница не обновлялась в течение заданного интервала времени, страница обновляется

Я делаю это, потому что, хотя я хочу содержимоечтобы оставаться в курсе, я не хочу, чтобы он отправлял запросы в фоновом режиме (когда пользователь не использует приложение).Это также означает, что если пользователь не использовал его более чем в течение определенного периода времени, то когда он снова начнет использовать его, он автоматически обновится.

Мне интересно, насколько это эффективно, как всякий раз, когда мышьперемещение проверок вызывается (и немного замедляет производительность - особенно при попытке щелкнуть ссылки) - является ли более эффективный способ сделать это?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Я бы лучше активировал / сбросил таймер, скажем, 60 секунд, при движении мыши, и установил, что ваши проверки с фиксированным интервалом запускаются, только если этот таймер выше нуля.

Таким образом, проверки не выполняются при каждом перемещении мыши, и если пользователь становится неактивным, проверки обновлений прекращаются через 60 секунд.

1 голос
/ 18 августа 2011

Другим возможным решением было бы использование событий окна blur и focus, чтобы определить, является ли окно активным:

var checkForContentUpdates = true;

$(window).focus(function() {
    checkForContentUpdates = true;
});

$(window).blur(function() {
    checkForContentUpdates = false;
});

Ваша подпрограмма AJAX затем отключит checkForContentUpdates bool.

Я уверен, что есть сценарии, в которых это не защищает от ошибок, поэтому вам, вероятно, придется комбинировать этот метод с другой логикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...