html5 - HTML 5 服务器发送事件EventSource如何让其每秒执行一次?
大家讲道理
大家讲道理 2017-04-17 11:40:33
[HTML讨论组]

W3C的例子:http://www.w3school.com.cn/tiy/t.asp?f=html5_sse

例子是每三秒执行一次,能否每秒执行一次?






获得服务器更新

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
大家讲道理

EventSource对象并不能够自行设定刷新时间,这依赖于浏览器的具体实现,比如在Chrome中的刷新时间是3秒,但是在Firefox中刷新时间为5秒。

事实上,如果你可以控制服务器的话,可以在服务器端使用retry头信息,指定通信的最大间隔时间。

服务器收到请求时,并不会立即回复这个请求,只有当服务器需要推送数据的时候,才会以data:'message'这样的格式返回信息,但是此时利用的是分块传输机制刷新缓存,并不释放连接,以便下一次继续推送。

所以这里有一个坑需要注意,如果你的服务器使用的是Nginx而不是Apache,那么需要关闭相应请求的buffer才能达到预期效果。

PHP中文网

EventSource是html5监听后端更新的api 也就是说 ,触发的频率是由后端决定的
所以你可以设置后端更新为一秒一次就好了

大家讲道理

浏览器对EventSource有最小时间的阀值,即使后端设为1秒也没有用。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号