我正在尝试在javascript中使用EventSource。但是一旦我使用它们,我就会遇到麻烦。首先,重新加载页面时,EventSource无法重新连接。其次,使用它可以防止XmlHttpRequests正常工作。在下面的代码中,如果我评论event_source相关的代码,xml请求工作正常。如果我创建事件源并添加侦听器,则xml请求永远不会成功。
envent_source = new EventSource('event-source.php');
envent_source.addEventListener('update', function(event) {
console.log("update event");
}, false);
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState == this.DONE) {
if (this.status == 200)
console.log("received");
}
}
request.open("GET", "document.xml");
request.send();
我错过了什么吗?是否需要谨慎使用EventSource?
答案 0 :(得分:0)
正如vinyar所指出的,问题不是客户端而是服务器端。在我的例子中,服务器使用php会话,确保来自同一客户端的请求的相互独占执行。因此,GET请求处于等待状态,直到事件源脚本终止。