0

我正在尝试在 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 需要谨慎使用吗?

4

1 回答 1

0

正如vinyar所指出的,问题不是客户端而是服务器端。在我的例子中,服务器使用 php 会话来确保来自同一客户端的请求的互斥执行。因此,GET 请求处于等待状态,直到事件源脚本终止。

更多信息:PHP 脚本的同时请求

于 2012-09-24T22:51:56.367 回答