“onmessage”和“.addEventListener”之间有什么区别
What the difference between `onmessage` and `.addEventListener`?
我正在尝试用服务器发送的事件获取数据,使用有什么不同
source.onmessage
与source.addEventListener
?
source.onmessage
是EventSource
的内置函数包装器,当向客户端发送新数据时会触发它。当未返回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
,总是有可能意外地添加同一个侦听器两次,例如,由于页面重新加载滞后,或者开发过程中的一些热重新加载。在这些情况下,处理程序函数可能对每个事件触发两次,从而导致奇怪的行为。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 在ember/handlers中使用value和valueBinding有什么区别
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 什么's本地node.js服务器和python简单http服务器之间的区别
- Math.min()和Math.max()之间有什么区别?在Javascript中
- angularjs中的ng网格和ui网格有什么区别
- webpack开发模式和生产构建模式之间有什么区别
- 缓存!saveLocations()和addLocation()函数有什么区别
- 关于承诺/A+规范,术语“当时可”和“承诺”之间有什么区别
- 以下两者在javascript中有什么区别
- 什么's extjs中的mon()和on()之间的区别
- jquery.js和jquery.lite.js有什么区别
- 通过Nuget安装Angular JS和Angular JS核心有什么区别
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- 这两种不同的创建对象文字的方法有什么区别
- jQuery中这两个词有什么区别
- 在Javascript语法中:和::和:::有什么区别
- 什么'这是JS中以下定义方式的区别
- getElementById 和 getElementsByClassName 有什么区别?
- (typeof variable === “function”) 和 jQuery.isFunction() 有什么区别