Мое приложение, основанное на Cordova, прослушивает «beforeunload», чтобы выполнить некоторую очистку и перевести приложение в состояние выхода, в результате чего оно не будет пытаться выполнить определенные действия, которые могут быть не завершены (например, обновления базы данных). .
Проблема в том, что в последнее время (4 клиента сообщили о проблемах, связанных с этим за последний месяц, для приложения, которое не изменилось за 12 месяцев, работало нормально в течение многих лет), мое приложение отправляется на событие "beforeunload" после нахождения в фоновом режиме, скажем, 5 минут, но затем он фактически не выгружается.
Таким образом, приложение остается запущенным, но в состоянии, когда оно считает, что оно завершает работу, что вызывает все виды проблем.
У меня есть пара исправлений, готовых к отправке. Одним из них является игнорирование события выгрузки, которое, поскольку приложение в настоящее время обычно работает в фоновом режиме, не является выходом из состояния выхода, вероятно, не имеет большого значения.
Другой вариант - переключиться на использование события «unload», а не «beforeunload», которое мне еще предстоит протестировать должным образом, но может быть более подходящим вариантом.
Мой вопрос на самом деле: это странное поведение 'beforeunload', которое следует ожидать / знать, или это ошибка в веб-просмотре?
Мое использование beforeunload восходит на 4 или 5 лет, поэтому оно вполне может устареть и нуждается в пересмотре.