擬似マルチスレッド

setInterval()を使うと、時間のかかる処理を擬似的に並列処理できます。
もともとこれは、指定した時間毎に関数を実行するようにしてくれる関数ですが、この関数で指定した関数は、描画の邪魔になるときは実行されなくなります。
これを利用すれば、時間のかかる処理の最低処理単位を一つの関数にしておいてsetInterval関数を使うことで、描画の合間にその関数を実行するようになり、裏で計算を続けることができます。
「時典」の日の出日の入り計算はこれを利用して裏で実行しています。