今回は頭を捻らされた問題を取り上げる。
 JavacSript(以下JS)ではバックグラウンド実行されることによって、
 ユーザーの実行環境下によってはセーフモードが働き、
 JSが期待した動作を発揮しないことがある。
 これを回避することはChatGPTに聞いてみたところ難しいらしい。
今回は問題となったのは時刻のサーバー同期である。
 プログラムの詳細は省くが
 カウントアップ形式によってサーバーから受け取ったデータをJSで回していた。
 しかしユーザーによってウィンドウ遷移されると、
 JSがバックグラウンド化し、期待した時刻を返さない。
そこで、ウィンドウが復帰したタイミングで発火してページを再リロードすることで、
 これらの問題を解決した。
document.addEventListener("visibilitychange", () => {
    if (document.visibilityState === "visible") {
        //console.log("復帰処理");
    }
});
復帰処理はAJAXを使ってページのbody要素を丸置き換えした。
 これにより、時刻がサーバーと完全に同期されるようになった。