Здравствуйте, уважаемые программисты! У меня есть сайт, на котором когда он открыт, с периодичностью, отправляются 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);
}
});
}