11

我想知道如何通过 JavaScript 关闭服务器发送的事件。下面是我的虚拟代码:

var ser=new EventSource("path");
ser.onmessage=function(ev){
if(!ev)
   //want to close HERE!!
else
   console.log(ev);
}
4

2 回答 2

10

这是我发现最适合我的方式

var eventSource = new EventSource("path");
eventSource.onerror = eventSourceErrorFunction;
var eventSourceErrorFunction = function(event)
{
        if (event.eventPhase == EventSource.CLOSED) {
            that.eventSource.close();
            console.log("Event Source Closed");
        }  
} 
于 2016-03-04T21:04:17.093 回答
8

关闭服务器端事件的正确方法是使用close方法。

https://developer.mozilla.org/en-US/docs/Server-sent_events/EventSource#Method_overview

所以你会使用:

var ser = new EventSource("path");
ser.onmessage = function (ev) {
    if (!ev)
       ser.close();
    else
       console.log(ev);
};

JavaScript 区分大小写,因此您不能使用.Close(),因为它.close()与在这种情况下是未定义的不同。

于 2013-04-05T17:07:24.610 回答