1

我正在使用服务器发送的事件通过 Web 应用程序将新数据推送给用户。我想避免显示两次相同的数据。我的想法是按照 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>';
    }
};

问题 :

“测试”每 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 回答