2013-01-07 33 views
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腳本不起作用...任何想法?

+0

您可能想要更改'last_id'的範圍並在函數外定義它 – Musa

+0

我並不真正明白您的意思。 – JeremyW

回答

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>'; 
    } 
}; 
+0

現在我得到了!非常感謝! – JeremyW