js: Switch to window.requestAnimationFrame() for timing

This is an API specifically designed for the purposes of timing
animations.  Unlike setInterval, it tries to synchronise with the screen
refresh rate.  It naturally passes us timing information, saving the
need to construct a Date object every frame.  It has the nice feature
that browsers (at least Firefox 91) will call it less frequently when
the puzzle page isn't visible, which saves CPU time in puzzles that run
a timer continuously.
This commit is contained in:
Ben Harris
2022-10-26 10:05:04 +01:00
parent c5a2446fae
commit 7982002a64
2 changed files with 23 additions and 15 deletions

View File

@ -90,8 +90,8 @@ var midpoint_test_str = "ABCDEFGHIKLMNOPRSTUVWXYZ0123456789";
var midpoint_cache = [];
// Variables used by js_activate_timer() and js_deactivate_timer().
var timer = null;
var timer_reference_date;
var timer_active = false;
var timer_reference;
// void timer_callback(double tplus);
//