我试着用一个小例子来使用EventSource对象
在客户端,我有一个包含以下脚本的页面:
<;!DOCTYPE html>;
<;html>;
<;头>;
<;元字符集=";UTF-8“/&燃气轮机;
<;标题>;欢迎光临</标题>;
</头>;
<;车身>;
<;div id=";“结果”&燃气轮机</部门>;
<;脚本类型=";text/javascript“&燃气轮机;
var sse=neweventsource('event-source.php');
sse.onmessage=函数(事件){
console.log(事件数据);
document.getElementById(“结果”).innerHTML+=event.data+“lt;br>;”;;
}
sse.onerror=功能(事件){
console.log(事件);
}
</脚本>;
</车身>;
</html>;
脚本在服务器上调用event-source.php。下面是event-source.php:
<;?php
标题(“内容类型:文本/事件流”);
echo“data:”.time().PHP_EOL;
当我在Firefox上尝试此配置时,方法;“onMessage”;这是一个很好的名字,但不与铬。当我把;onError";方法,似乎调用了它,但我看不到错误原因
我该怎么办
客户
<;脚本>;
if(typeof(EventSource)!=“未定义”){
var source=neweventsource(“/html/demo_sse.php”);
source.onopen=函数(){
document.getElementById(“myH1”).innerHTML=“获取服务器更新”;
};
source.onmessage=函数(事件){
document.getElementById(“myDIV”).innerHTML+=event.data+“<;br>;”;
};
}否则{
document.getElementById(“myDIV”).innerHTML=“对不起,您的浏览器不支持服务器发送的事件…”;
}
</脚本>;
服务器
<;?php
标题(“内容类型:文本/事件流”);
标头(“缓存控制:无缓存”);
$time=日期('r');
echo“数据:服务器时间为:{$time}\n\n”;
冲洗();
?>;