Как можно отследить активность пользователя на сайте?

Здравствуйте, уважаемые программисты! У меня есть сайт, на котором когда он открыт, с периодичностью, отправляются ajax запросы, для обновления информации. В связи с этим возник вопрос. А как заставить эти запросы выполняться только тогда, когда от пользователя есть активность на сайте? Не его онлайн нахождение, а именно активность? Допустим, я могу на рабочем компьютере не закрыть браузер и вкладку с сайтом, хотя сам я дома и активности нет (но при этом, я буду числиться онлайн). И по идее, выполнять эти ajax запросы не надо. К пользователю (зарегистрированному) привязывать нельзя, потому как есть и не зарегистрированные. Сталкивался кто-нибудь? Вот основная функции, отвечающая за сам запрос. Реально ли доработать, по моей идее?
function ajax(params) { // Описываем функцию отправки запроса
  params.data.action = params.action;
  delete params.action;
  params.url = 'ajax.php'; // Путь до файла с нашими функциями
  params.error = function(xhr, err) {
  var responseTitle= $(xhr.responseText).filter('title').get(0);
   $('.notifi').slideDown();
   $('#contentNotif').html($(responseTitle).text() + "\n" + formatErrorMessage(xhr, err) );
   setTimeout(function(){$('.notifi').slideUp();}, 2000);
  }
  var request = $.ajax(params);
  //alertObj(request)
  request.then(function(response) {
    try {
            var json = JSON.parse(response);
            if (json.errors) {
           // Обработчик ошибок
           errorFunction(json.errors);
           }
           if (json.action) window[json.action](json.data); // Запускаем коллбек с полученными данными в качестве параметра
        } catch (e) {
            // is not a valid JSON string
          debugLog('Ошибка JSON: '+e.message);
    $('.notifi').slideDown();
    $('#contentNotif').html("Обработка JSON - не удалось распарсить.<br /> Пожалуйста, сообщите об ошибке администратору!");
    setTimeout(function(){$('.notifi').slideUp();}, 3000);
     var jsOn = "";
    for(k in params.data) {
        jsOn += k+": "+ params.data[k]+"\r\n";
    }
    sendErrorJSON(e.message,response,jsOn);
        }

    });

}
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
когда от пользователя есть активность на сайте?

Стоит начать с корректной формулировки, что есть "активность от пользователя на сайте".
Например, JS может худо-бедно определить, является ли вкладка со страницей активной.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы