Я создаю чат, который должен получать сообщения с PHP с помощью AJAX в промежутках. Проблема в том, что пользователи могут открывать несколько вкладок в разных чатах, и это займет много ресурсов с сервера. Итак, как я могу остановить функцию на других вкладках, когда пользователь переключает страницу, а затем реагирует на нее, когда они возвращаются на вкладку. Я не являюсь новым для кодирования поэтому, пожалуйста, держать код как можно более простым (NO JQuery пожалуйста.)как остановить функцию Javascript, когда пользователь переключает вкладку или сводит к минимуму broswer
Вот функция тестирования я пытался, но не повезло:
function window_active(){
window.onfocus = function() {
test()
};
window.onblur = function() {
//stop the script OR change the setTimeout so the functon run less.
};
}
function test(){
alert('adadasdad');
setTimeout(function(){}, 10000);
}
Спасибо заранее. (:
Update: requestAnimationFrame() не работал
function loop() {
var div_id = document.getElementById('tester');
var msg = document.createTextNode("sadksadkjsahdjkasdjkahdjkas");
div_id.appendChild(msg);
setTimeout(function() {
requestAnimationFrame(function() {
loop();
});
}, 1000);
}
Update 2:. Counldn't найти этот ответ где-нибудь, а потом мне повезло, и нашел эту страницу с помощью из ehynds ответа о "document.hidden" Спасибо ehynds (:.!
function loop() {
//do stuff.
setTimeout(function() {
if(document.hasFocus()){
//"document.hasFocus()" return **true** only if your on the tab.
loop();
}
}, 1000);
window.onfocus = function() {
//reactivted the function.
loop();
};
}
Hopes это поможет кому-то ищет ответ (:.
'window.requestAnimationFrame' – zerkms
Можете ли вы показать пример, пожалуйста? :/ – toastext