ページが読み込まれたときに2秒ごとに実行される間隔を作成しました。今、他のページに移動すると、間隔がクリアされます(コードを確認してください)。今私が欲しいのは、同じタブに再び移動すると、間隔が再び始まるはずです。ブラウザタブにフォーカスがあるときにsetIntervalを実行するにはどうすればいいですか?
私が試したことは、このコード全体を$(window).focus(//CODE)
の中に書きましたが、ページが最初にブラウザのタブで開かれたときに実行されないという問題がありました。
どのようにこの問題を解決できますか?
ここに私のコードです:私が試した
var zzz= setInterval(anewFunc, 2000);
function anewFunc(){
$(document).ready(function(){
var chatattr=$(".chatwindow").css("visibility");
var chattitle=$("#hideid").text();
if(chatattr=="visible"){
$.ajax({
url: 'seen1.php',
type: 'post',
data: "ctitle="+chattitle,
success: function(result9){
},
error: function(){
}
});
}
$(window).blur(function(){
$.ajax({
url: 'session.php',
type: 'post',
success: function(result10){
// alert(result10);
},
error: function(){
}
});
clearInterval(zzz);
});
});
}
requestAnimationFrameを使用すると、ブラウザは自動的にこれを行います。ループを一時停止して再起動します。タイミングコードを処理するだけで済みます。 – ManoDestra