以前的HTML版本中,要获取实时数据,必须要不断向服务器发出请求来查询有没有新内容,这样不管从建立连接还是等待时间来说都是要多苦逼就有多苦逼啊(微观来说),[最近死在学校里实在没事做就去逛了逛w3,中文的w3school更新比英文版慢了不知多少啊]然后我发现了w3的html专版里多出了一个HTML5 服务器发送事件这东西。
看了一下他的介绍大概知道她是干什么用的了,简单地说就是用javascript建立一个长连接到一个网页脚本,然后脚本就可以按需向浏览器页面主动发送数据。
下面来解释一下工作方式
//这是我整合了w3里的示例代码,添加详细注释来助解 if (typeof(EventSource) !== "undefined") {//检查是否支持服务器推送 var a = new EventSource("脚本.php");//建立和"脚本.php"的连接 a.onmessage=function(event) {//接收到消息的事件 /*这里的event.data存储了从服务器传回来的数据*/ /*比如alert(event.data)来提示返回的数据*/ }; a.onopen=function(event){//打开连接时的事件 /*用event.readyState可以获取此时的状态号*/ /*建立好连接的时候干些什么*/ }; a.onerror=function(event){//发生错误时的事件 /*用event.readyState可以获取此时的状态号*/ /*发生错误的时候干些什么*/ }; } else {//不支持推送的话 alert("您老的浏览器不支持服务器推送"); a.close();//用close()方法可以关闭连接 a=null;//把a对象清空,让它的空间自动被回收 }
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。