使用Server-Sent Events避免使用相同的数据

时间:2013-01-07 21:40:41

标签: javascript server-sent-events

我正在使用Server-Sent Events通过Webapp将新数据推送给用户。我想避免显示两次相同的数据。我的想法是使用e.lastEventId作为Mozilla的文档推荐。

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”每隔3秒显示一次,而不是只显示一次,直到有新数据出现。我很熟悉ID,但看起来如果js脚本中的'if'不起作用......有什么想法吗?

1 个答案:

答案 0 :(得分: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>';
    }
};