Javascript EventSource与xmlhttprequest同时与PHP服务器交互

时间:2012-09-24 06:23:35

标签: php javascript xmlhttprequest

我正在尝试在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?

1 个答案:

答案 0 :(得分:0)

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

更多信息:Simultaneous Requests to PHP Script

相关问题