Html服务器推送事件

comet技术(基于 HTTP 长连接的“服务器推”技术):前端发一个ajax,服务端不释放,不停地向前端发数据。说白了,还是前端主动发请求,服务器被动。

以下,服务器为主动方,向前段发请求的技术。


连接:http://www.runoob.com/html/html5-serversentevents.html




html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="index.js"></script>
</head>
<body>
    <h1>Status:</h1>
    <div id="statusDiv"></div>
    <h1>Server Data:</h1>
    <div id="serverData"></div>
</body>
</html>

js:

/**
 * Created by wwtliu on 14/8/18.
 */

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;
}

php服务端


<?php
/**
 * Created by PhpStorm.
 * User: wwtliu
 * Date: 14/8/18
 * Time: 下午4:39
 */

header('Content-Type:text/event-stream');  
 
getNews();
function getNews(){
 	echo "event:newDate\n";  
    echo 'data:'.date('Y-m-d H-i-s');  
    echo "\n\n";  
    flush();  
 } ?>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值