Refactor epub reader progress calculation

The code in epub-progress.js was causing the epub file to be loaded
twice over the network, because it created a second instance of the
epub.js library. I moved all the progress percentage display code into
epub.js. Only the locationchange polyfill code was left in the separate
file, renamed to locationchange-polyfill.js.

I rewrote the percentage progress code to use epub.js events,
giving more succinct and readable code. Also, I added localStorage
caching of the epub location calculations, required for displaying
percentage progress, which can take up to 60-90 seconds to calculate on
longer ebooks. This localStorage caching approach is recommended by
epub.js in the `locations.html` example in their repo.

Signed-off-by: Ross Williams <ross@ross-williams.net>
This commit is contained in:
Ross Williams
2025-02-21 04:15:37 +00:00
parent efc7ce31d2
commit 22a93a28e2
5 changed files with 49 additions and 55 deletions
+1
View File
@@ -831,4 +831,5 @@ input:-moz-placeholder { color: #454545; }
bottom: 4rem;
width: fit-content;
position: absolute;
visibility: hidden;
}