1

Server-Sent Events を使用して、Webapp を介してユーザーに新しいデータをプッシュしています。同じデータを2回表示するのは避けたいです。私の考えは、Mozilla のドキュメントが推奨するように e.lastEventId を使用することでした。

test_stream.php に表示されるデータ:

id: 3 データ: テスト

JS スクリプト:

var source = new EventSource('test_stream.php');
source.onmessage = function(e) {
    var now_id = e.lastEventId;

    if(last_id != now_id) {
        var last_id = e.lastEventId;
        document.body.innerHTML += e.data + '<br>';
    }
};

問題 :

「test」は、新しいデータが来るまで 1 秒ごとに表示されるのではなく、3 秒ごとに表示されます。私はIDをうまく取得しましたが、jsスクリプトの「if」が機能しないようです...何か考えはありますか?

4

1 に答える 1

1
var source = new EventSource('test_stream.php');
var last_id;
source.onmessage = function(e) {
    var now_id = e.lastEventId;

    if(last_id != now_id) {
        last_id = e.lastEventId;
        document.body.innerHTML += e.data + '<br>';
    }
};
于 2013-01-07T21:55:20.273 に答える