Я хотел бы верить, что обновление окна или вкладки браузера не может быть утечкой. К сожалению, это не относится к WebAssembly.
Я создал ящик для веб-сборки с помощью Rust. Размер скомпилированного ящика составляет примерно 360 Кб (до сжатия контента), и он отлично работает в Firefox и даже в Safari на iOS. Однако в Chrome возникают многочисленные проблемы, одна из которых заключается в том, что обновление страницы, использующей .wasm
, в конечном итоге приводит к ошибке нехватки памяти в консоли.
Страница прекрасно работает около 35 обновлений, а затем выдает следующее:
Uncaught (in promise) RangeError: WebAssembly Instantiation: Out of memory: wasm memory
После этого вкладка становится бесполезной, но открытие новой вкладки и загрузка страницы работает, как и ожидалось - опять же, примерно для первых 35 обновлений.
Это ошибка в браузере или я что-то не так делаю в своем коде? Если это ошибка, есть ли способ обойти это? (Не то чтобы я ожидал, что это проявится в производстве, но в любом случае ...)
(Предположительно, обещание, упомянутое в сообщении об ошибке, - это обещание, возвращаемое import('...')
. Я использую веб-пакет и поэтому на меня влияет https://github.com/webpack/webpack/issues/6615)