Я заметил, что моей странице потребовалось больше времени, чтобы обновить sh после добавления одного SSE (иногда до 30 секунд, что для меня просто нет). Пока страница пыталась перезагрузиться, я заметил, что событие SSE onmessage
сохраняется.
function new_event() {
if (typeof(EventSource !== undefined)) {
var ES = new EventSource('../folder/file.php');
/** This event continues while page tries to refresh **/
ES.onmessage = function(ev) {
var data = ev.data;
// Data is still outputed in the console while page tries to refresh
console.log(data);
}
}
Я пытался добавить функцию onunload
на страницу внутри функции new_event (), но с треском провалился.
var ES = new EventSource('../folder/file.php');
window.onunload = function(){
ES.close();
}
Почему Источник события сохраняется, пока страница пытается перезагрузить? Это внутренняя проблема, так как большая часть работы выполняется на серверной части? Почему не сработало onunload
событие? Обратите внимание, что эта же проблема возникает, когда я пытаюсь отойти от страницы.
Есть ли способ закрыть соединение с источником событий, не отставая от страницы на странице refre sh?