何らかのアクションを実行した人数のリアルタイム更新を表示する必要があります。20 秒ごとにサーバーに ajax リクエストを送信することで、この機能を実装しました。しかし、この ajax リクエストは、タブがフォーカスされていない場合や誰も更新を見ていなくても発生します。タブがアクティブかどうかを確認する方法はありますか?
次のコード (簡易版) がありますが、動作しません。
timer = undefined
$(document).ready ->
timedCountUpdate()
window.top.onblur = ->
clearTimeout(timer)
window.top.onfocus = ->
timer = timedCountUpdate()
@timedCountUpdate = () ->
timer = setTimeout(updateCountIndicator, 20000)
@updateCountIndicator = () ->
$('.indicator').html = 100
timedCountUpdate()
アプリがロードされているタブにいない場合でも、20 秒ごとに呼び出しが行われます。私はクロムでテストしています。