У меня есть приложение React, которое использует библиотеку визуализации данных, которая использует Pixi JS.
Иногда я получаю разочаровывающие CONTEXT_LOST_WEBGL
ошибки в Chrome, которые вынуждают пользователя вручную перезагрузить страницу, в порядок отображения (пере) страницы.
Я не могу часто или надежно воспроизвести ошибку, но я знаю, что это происходит, потому что другие люди говорят мне, что приложение иногда не показывает данных. Ситуации, которые вызывают эту ошибку, кажутся очень зависимыми от контекста и поэтому трудно подвести итог - маломощные графические адаптеры или множество открытых одновременно вкладок и т. Д. c.
Конечный пользователь будет знать только, что ошибки CONTEXT_LOST_WEBGL
, если у этого пользователя открыто окно консоли инструментов разработчика. В противном случае веб-страница просто выглядит пустой.
Я пытался настроить мое приложение React для перезагрузки окна без вмешательства пользователя вручную, когда происходит событие webglcontextlost
:
componentDidMount() {
...
window.addEventListener("webglcontextlost", (e) => { window.location.reload(); });
...
}
Я не уверен, что он работает правильно, , то есть , если событие webglcontextlost
обрабатывается в другом месте. Или, возможно, я пытаюсь подписаться на неправильное событие?
В противном случае, чтобы попытаться обработать это более изящно, есть ли способ в raw Javascript или через стороннюю библиотеку периодически измерять доступное памяти для WebGL, и использовать это измерение для перезагрузки страницы, когда доступная память достигает некоторого произвольного порога, который может предсказать неизбежное CONTEXT_LOST_WEBGL
состояние ошибки?