`
flex_莫冲
  • 浏览: 1091861 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

html5 sse 在chrome、firefox上的不同表现

 
阅读更多
虽然两者都实现了html5 sse,但是两者处理方式是不同的。

若在服务器端处理的时候。若没有返回数据,在FF下会中断SSE连接,并且都不会在连接上了。
public function sse_connect()
	{
		header('Content-Type: text/event-stream');
		header('Cache-Control: no-cache');
		$result = D("Plan")->checkIsUpdate($_GET['planID'], $_GET['editTime']);
		if ($result == "update") {
			echo "event: update\n\n";
			echo "data: {$result}\n\n";
			ob_flush();
			flush();
		} 
	}


因此必须每次连接都有返回数据才行。而在CHROME下则可以处理这种情况。没有返回也可以再次发起连接。

Fireforx上sse是每5秒发起一次连接。而chrome是3秒。

Chrome:
Sat Oct 12 2013 16:36:06 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:09 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:12 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed article.js:2075
Sat Oct 12 2013 16:36:16 GMT+0800 (中国标准时间) article.js:2067
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed

Firefox:
Date {Sat Oct 12 2013 16:36:29 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
article.js (line 2075)
Date {Sat Oct 12 2013 16:36:34 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed
article.js (line 2075)
Date {Sat Oct 12 2013 16:36:39 GMT+0800}
article.js (line 2067)
http://pageplan/Portal/Article/sse_connect?planID=147&editTime=2013-10-12%2016:31:29connection is closed


SSE的缺点是,定制性不高,API的参数很少,比如不能自定义轮询的时间间隔。
它本质上就是轮询get 类型的AJAX。
在特定的需求下会比较有用,比如做个时间显示。如果用JS写,不能保证时间一致,用服务器端推送时间就能保证每个客户端的时间都是一致的。还有,比如间隔消息推送之类的需求。
分享到:
评论

相关推荐

    support-protocol-v8-chrome-15-firefox-6

    标题“support-protocol-v8-chrome-15-firefox-6”揭示了这是一个与Web开发相关的资源,特别是针对HTML5的Server-Sent Events (SSE)或WebSocket协议的实现,适用于Chrome 15和Firefox 6这两个浏览器版本。...

    use sse in spring4.2

    - **Mozilla Firefox**:支持(自Firefox 6.0开始) - **Google Chrome**:支持(自Chrome 6开始) - **Opera**:支持(自Opera 11开始) - **Safari**:支持(自Safari 5.0开始) #### Maven设置 由于Spring 4.2...

    html5_tutorial

    在浏览器支持方面,大多数现代浏览器都支持HTML5,包括苹果Safari、谷歌Chrome、火狐Firefox和Opera等,就连较旧的Internet Explorer 9也提供一定程度的HTML5支持。此外,预装在iPhone、iPad和安卓手机上的移动...

    HTML5基本介绍.pdf

    实际上,许多最新的浏览器(如Safari 5、Firefox、Chrome、Opera和Internet Explorer 9)以及智能手机平台(如iPhone和Android)已经支持HTML5的部分功能。尤其是在智能手机和平板电脑等移动设备上,HTML5的应用变得...

    Apress.Pro.HTML5.Programming.Aug.2010.pdf

    - **调试工具**:Chrome DevTools、Firefox Developer Edition等工具的使用技巧。 **3. 代码示例与解释** - 提供了详细的代码示例,包括但不限于JavaScript脚本、CSS样式等,便于读者理解和实践。 #### 四、书籍...

    html5服务器推送_动力节点Java学院整理

    SSE在主流浏览器中的支持广泛,包括Firefox 6.0+、Chrome 6.0+、Safari 5.0+、Opera 11.0+、iOS Safari 4.0+、Opera Mobile 11.1+、Chrome for Android 25.0+、Firefox for Android 19.0+ 和 Blackberry Browser 7.0...

    sse-dmeo:sse 简单的例子

    API Chrome IE Firefox Safari Opera SSE 6.0 No 6.0 5.0 1.5 ##2 关键js对象 EventSource EventSource接口用来管理服务器发送事件.你可以通过将EventSource对象的onmessage属性指向一个自定义方法来...

    浏览器内核&HTML5.pptx

    - **Firefox**: 使用**Gecko**内核。 - **Safari**: 使用**WebKit**内核。 - **Opera**: 早期使用**Presto**内核,后来改为**Blink**内核。 2. **内核特性比较:** - **WebKit**: 开源项目,广泛应用于多个...

    实现浏览器无刷性长连接的htmlfile实现

    由于这是一个IE特有功能,它不适用于其他浏览器,如Firefox、Chrome或Safari。HTMLFile对象通常通过JavaScript进行操作,可以用于实现文件上传、下载以及在客户端和服务器间进行数据交换,为创建实时的Web应用程序...

    微软SignalR案例解读和测试

    4. **兼容性**:SignalR支持各种浏览器和服务器平台,包括Internet Explorer、Chrome、Firefox以及.NET、Java和Node.js服务器。 在Mvc5项目中集成SignalR,首先需要安装必要的NuGet包。在Visual Studio中,可以通过...

    html源码 web网页聊天功能页面模板

    9. **兼容性**:模板需要考虑各种浏览器的兼容性,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。 10. **响应式设计**:随着移动设备的普及,聊天页面需要适应不同尺寸的屏幕,实现响应式布局。 11. *...

    前端开源库-hash-exchange

    - 考虑到跨浏览器兼容性,hash-exchange库应该支持主流浏览器,包括Chrome、Firefox、Safari、Edge等。 - 性能优化:为了确保高效的数据交换,库可能采用了异步更新策略,避免阻塞主线程。 5. 前端开源库的重要性...

    JSWebrtc简易播放器 v1.0-源码.zip

    开发者应测试其代码在各种浏览器(如Chrome、Firefox、Safari等)下的表现,确保兼容性和稳定性。 通过以上分析,我们可以看到,"JSWebRTC简易播放器 v1.0-源码.zip"不仅是一个实用的学习资源,也是进一步探索...

    smarthome.paperui-1

    最新版本支持除Internet Explorer之外的所有现代浏览器(Safari,Chrome,Firefox)。 Internet Explorer主要缺少对SSE的支持。 即使Eclipse SmartHome框架非常灵活,Paper UI也非常简单,仅支持有限的用例。 与...

    漂浮在右侧随页面滚动的手机屏幕样式在线客服

    10. **兼容性测试**:最后,设计师和开发者会进行广泛的浏览器兼容性测试,确保在主流浏览器(如Chrome、Firefox、Safari、Edge等)以及不同操作系统(如Windows、macOS、iOS、Android)上都能正常运行。 总的来说...

    SignalR-源码.rar

    同时,它也适用于多种浏览器,包括Chrome、Firefox、Safari和Internet Explorer。 源码分析: SignalR的源码包含了多个项目,包括核心库、服务器端组件、客户端库以及示例应用。通过查看源码,我们可以深入理解其...

    HTML5 服务器发送事件(Server-Sent Events)

    主流浏览器,如Chrome、Firefox、Safari和Opera,都支持Server-Sent Events,但Internet Explorer是个例外。要实现Server-Sent Events,客户端通常会创建一个`EventSource`对象,并指定服务器上提供事件流的URL。...

    webrtcDemo.rar

    - **浏览器兼容性**:不同的浏览器对WebRTC的支持程度不同,需要关注Chrome、Firefox、Safari等主流浏览器的实现差异。 在"webrtcDemo.rar"中,你可以期待找到一个简单的WebRTC应用场景,比如一对一视频聊天或者...

    WebSocket学习文档

    目前,大多数现代浏览器都支持WebSocket协议,包括Chrome、Safari、Firefox、Opera和Internet Explorer。 WebSocket协议自草案发布以来,已经经历了多个版本,最新的稳定版本是第17版,对应协议版本号13。虽然...

Global site tag (gtag.js) - Google Analytics