a-b-street/abstreet

Web client performance

Open

#377 ouverte le 3 nov. 2020

Voir sur GitHub
 (11 commentaires) (0 réactions) (0 assignés)Rust (256 forks)batch import
good first issue

Métriques du dépôt

Stars
 (6 779 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

Some different ideas for smoothing out the web client:

  • The .wasm binary is around 50MB, which makes initial startup time quite sad. Gzipped is around 20MB. I can't find any option to enable this in wasm-pack, because I think people generally just configure their web servers to do compression on-the-fly if the HTTP client sends Accept-Encoding headers. S3 doesn't support this, but I think it's possible to upload a .wasm.gz, point to it from the .html, and set the Content-Encoding header properly. Just need to test this and make sure browsers understand it.
  • Keep the Scenario for the current map in memory after loading it from a file. Otherwise, everytime the player resets to midnight in many gameplay modes, they have to download the file again!
  • In wasm_loader::FileLoader, display a progress bar with bytes downloaded / total length. I found set_onprogresss for XmlHttpRequest, but actually, we're currently using web_sys::Request, which is different. Can we switch?

Guide contributeur