《初级前端1.22》 HTML5 服务器推送事件SSE(Server-sent Events)
Server-Sent 事件 - 单向消息传递,指的是网页自动获取来自服务器的更新。


详细的实现: http://www.cnblogs.com/woodk/articles/5189851.html
SSE实现:

SSE中文文档:https://developer.mozilla.org/zh-CN/docs/Server-sent_events/EventSource
使用服务器发送事件: https://developer.mozilla.org/zh-CN/docs/Server-sent_events/Using_server-sent_events
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>sse</title> <script type="text/javascript" src="index.js"></script> </head> <body> <h1>Status:</h1> <div id="statusDiv"></div> <h1>Server Data:</h1> <div id="serverData"></div> </body> </html>
index.php
<?php header('Content-Type:text/event-stream'); for($i=0; $i<100; $i++){ date_default_timezone_set("Asia/Shanghai"); echo "event:newDate\n"; echo 'data:'.date('Y-m-d H:i:s'); echo "\n\n"; ob_flush(); flush(); sleep(1); } ?>
index.js
var serverData, statusDiv; var SERVER_URL = "index.php"; window.onload = function(){ serverData = document.getElementById("serverData"); statusDiv = document.getElementById("statusDiv"); startlistenServer(); } function startlistenServer(){ statusDiv.innerHTML = "start Connect Server..."; var es = new EventSource(SERVER_URL); es.addEventListener("newDate", newDateHandler); es.onopen = openHandler; es.onerror = errorHandler; es.onmessage = messageHandler; } function openHandler(e){ statusDiv.innerHTML = "Server open"; } function errorHandler(e){ statusDiv.innerHTML = "Error"; } function messageHandler(e){ serverData.innerHTML = e.data; } function newDateHandler(e){ serverData.innerHTML = e.data; }
运行index.html,结果:
时间不断刷新...

浙公网安备 33010602011771号