a-b-street/abstreet

Web client performance

開放

#377 建立於 2020年11月3日

 (11 則留言) (0 個反應) (0 位負責人)Rust (256 個分叉)batch import
good first issue

倉庫指標

星標
 (6,779 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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?

貢獻者指南