SSE
    2019-10-22
  
  html5提供了Server-Sent Events方法,通过服务器发送事件,更新能够自动到达。
使用示例:
if (typeof (EventSource) !== "undefined") {
    var source = new EventSource("server.php");
    source.onopen = function () {
        console.log("Connection to server opened.");
    };
    source.onmessage = function (event) {
        document.getElementById("result").innerHTML += event.data + "<br>";
    };
    source.onerror = function () {
        console.log("EventSource failed.");
    };
}
else {
    document.getElementById("result").innerHTML = "抱歉,你的浏览器不支持 server-sent 事件...";
}
服务端:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
date_default_timezone_set('PRC');
$i = 0;
while (++$i < 100) {
    echo "id: " . $i . "\tdate: " . date('c') . ";\n\n";
    ob_flush();
    flush();
    sleep(1);
}
