0

JavaScript で EventSource を使用しようとしています。しかし、使ってみるとちょっと困った。まず、ページをリロードするときに、EventSource が再接続できません。第 2 に、これを使用すると、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 に答える