“onmessage”和“.addEventListener”之间有什么区别

What the difference between `onmessage` and `.addEventListener`?

本文关键字:区别 什么 addEventListener onmessage 之间      更新时间:2023-09-26

我正在尝试用服务器发送的事件获取数据,使用有什么不同

source.onmessagesource.addEventListener

source.onmessageEventSource的内置函数包装器,当向客户端发送新数据时会触发它。当未返回event属性时(默认值),并且设置时不激发时,它就会激发。

addEventListener与之类似,但不同之处在于它侦听特定的event名称,并在其存在时触发,允许您为多个事件分离功能。然后可以解析返回的JSON数据。它可以用于任何事件类型。看看这个例子:

source.addEventListener("login", function(e) {
    // do your login specific logic
    var returnedData = JSON.parse(e);
    console.log(returnedData);
}, false);

此代码段将侦听event指定为login的服务器消息,然后触发回调函数。

更多信息:

  • https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events
  • http://html5doctor.com/server-sent-events/

我想您谈论的是addEventListener('message')onmessage。他们也做同样的事情,但我建议使用onmessage,因为使用addEventListener,总是有可能意外地添加同一个侦听器两次,例如,由于页面重新加载滞后,或者开发过程中的一些热重新加载。在这些情况下,处理程序函数可能对每个事件触发两次,从而导致奇怪的行为。