Как изменить исходный набор в объявлении EventSource
?
Я пробовал что-то вроде этого:
var source = new EventSource("/blahblah.php?path=" + (window.location.pathname)); // Few lines later... source.url = "/blahblah.php?path=" + url;
Но, source.url
остается тем же …
Возможно ли это? Или, может быть, есть альтернативные способы сделать это?
Нет, это невозможно. Новый URL-адрес, переданный EventSource()
создает новый объект EventSource
.
guest271314 предложил мне много решений, но для меня было бы намного лучше, быстрее и менее сложно оставаться с sse.
Я изменил источник, закрыв и удалив (все необходимые) исходный var.
Вот как я это сделал:
source.url = "/blahblah2.php"; source.close(); delete source; //Redefine source
ВАЖНО: это не сработает, если вы определили источник с var
! Переопределение должно также обойтись без него!