<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    HTML 5 服務(wù)器發(fā)送事件

    HTML5 服務(wù)器發(fā)送事件(server-sent event)允許網(wǎng)頁(yè)獲得來(lái)自服務(wù)器的更新。

    Server-Sent 事件 - 單向消息傳遞

    Server-Sent 事件指的是網(wǎng)頁(yè)自動(dòng)獲取來(lái)自服務(wù)器的更新。

    以前也可能做到這一點(diǎn),前提是網(wǎng)頁(yè)不得不詢(xún)問(wèn)是否有可用的更新。通過(guò)服務(wù)器發(fā)送事件,更新能夠自動(dòng)到達(dá)。

    例子:Facebook/Twitter 更新、估價(jià)更新、新的博文、賽事結(jié)果等。

    瀏覽器支持

    所有主流瀏覽器均支持服務(wù)器發(fā)送事件,除了 Internet Explorer。

    接收 Server-Sent 事件通知

    EventSource 對(duì)象用于接收服務(wù)器發(fā)送事件通知:

    實(shí)例

    var source=new EventSource("demo_sse.php"); source.onmessage=function(event)   {   document.getElementById("result").innerHTML+=event.data + "<br />";   }; 

    親自試一試

    例子解釋?zhuān)?/p>

    • 創(chuàng)建一個(gè)新的 EventSource 對(duì)象,然后規(guī)定發(fā)送更新的頁(yè)面的 URL(本例中是 "demo_sse.php")
    • 每接收到一次更新,就會(huì)發(fā)生 onmessage 事件
    • 當(dāng) onmessage 事件發(fā)生時(shí),把已接收的數(shù)據(jù)推入 id 為 "result" 的元素中

    檢測(cè) Server-Sent 事件支持

    在上面的 TIY 實(shí)例中,我們編寫(xiě)了一段額外的代碼來(lái)檢測(cè)服務(wù)器發(fā)送事件的瀏覽器支持情況:

    if(typeof(EventSource)!=="undefined")   {   // Yes! Server-sent events support!   // Some code.....   } else   {   // Sorry! No server-sent events support..   } 

    服務(wù)器端代碼實(shí)例

    為了讓上面的例子可以運(yùn)行,您還需要能夠發(fā)送數(shù)據(jù)更新的服務(wù)器(比如 PHP 和 ASP)。

    服務(wù)器端事件流的語(yǔ)法是非常簡(jiǎn)單的。把 "Content-Type" 報(bào)頭設(shè)置為 "text/event-stream"。現(xiàn)在,您可以開(kāi)始發(fā)送事件流了。

    PHP 代碼 (demo_sse.php):

    <?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache');  $time = date('r'); echo "data: The server time is: {$time}\n\n"; flush(); ?> 

    ASP 代碼 (VB) (demo_sse.asp):

    <% Response.ContentType="text/event-stream" Response.Expires=-1 Response.Write("data: " & now()) Response.Flush() %> 

    代碼解釋?zhuān)?/p>

    • 把報(bào)頭 "Content-Type" 設(shè)置為 "text/event-stream"
    • 規(guī)定不對(duì)頁(yè)面進(jìn)行緩存
    • 輸出發(fā)送日期(始終以 "data: " 開(kāi)頭)
    • 向網(wǎng)頁(yè)刷新輸出數(shù)據(jù)

    EventSource 對(duì)象

    在上面的例子中,我們使用 onmessage 事件來(lái)獲取消息。不過(guò)還可以使用其他事件:

    事件描述
    onopen當(dāng)通往服務(wù)器的連接被打開(kāi)
    onmessage當(dāng)接收到消息
    onerror當(dāng)錯(cuò)誤發(fā)生

    posted on 2014-04-10 16:06 順其自然EVO 閱讀(211) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): HTML5

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 免费h视频在线观看| 久久久久亚洲精品天堂| 波多野结衣免费在线| 亚洲高清免费视频| 亚洲日本VA中文字幕久久道具| 狠狠色伊人亚洲综合成人| 福利免费观看午夜体检区| 你懂的免费在线观看| 美女被免费视频网站a| 亚洲黄页网在线观看| 亚洲精品国产福利片| 亚洲AV无码专区电影在线观看| 亚洲精品网站在线观看不卡无广告 | 无码专区永久免费AV网站| 免费一级毛片在线播放放视频| 99久久国产亚洲综合精品| 在线免费观看亚洲| 亚洲VA中文字幕无码毛片| 日韩亚洲变态另类中文| 免费在线观看污网站| 日韩激情无码免费毛片| 99精品全国免费观看视频| 黄色片在线免费观看| 亚洲一区二区三区免费观看| 日韩精品无码免费一区二区三区| 9久热精品免费观看视频| 尤物视频在线免费观看| 看亚洲a级一级毛片| 亚洲乱人伦中文字幕无码| 亚洲伦理一二三四| 亚洲av日韩av综合| 久久夜色精品国产噜噜亚洲a| 亚洲中文字幕无码av在线| 亚洲影视一区二区| 亚洲人成在线免费观看| 亚洲一级视频在线观看| 亚洲国产午夜精品理论片| 2020年亚洲天天爽天天噜| 亚洲乱色伦图片区小说| 黄色片网站在线免费观看| 免费看一级高潮毛片|