javascript - Detecting user-initiated page unload vs browser crashing -
i have memory-intensive webgl code runs in both desktop , mobile devices. user able add/remove webgl modules thereby changing memory requirements page. on low-power devices possible user bad state. try load page, page runs out of memory due many modules loading. page crashes. working on providing user means of recovering scenario.
some high-level pseudocode recovery solution looks like:
- during init, write flag sessionstorage each module. flag indicates given module has not loaded yet.
- if module has flag in storage - don't try load it.
- for every other module - attempt load.
- as each module loads, clear flag.
overall, code has effect of preventing browser attempting load modules every time.
however, clear module's load flag if user refreshes page. manual page refresh not browser crash -- , modules should continue try , load:
window.addeventlistener('unload', function() { /* clear flags here */ });
this seems work fine in desktop environments, in testing mobile devices i've found times browser refreshes page automatically instead of crashing. in safari, see error message:
"a problem occurred webpage reloaded."
is possible detect manual page refresh vs 'browser error recovery' refresh?
to best of knowledge answer is, 'no.' have window unload event work in both scenarios.
Comments
Post a Comment