浏览器push技术测试demo

来源:互联网 发布:知乎 arpg 编辑:程序博客网 时间:2024/04/27 14:10

   典型的B/S架构的使用模型是:浏览器发送一个HTTP请求后,web server 返回一个对应的HTTP响应,这种一来一回的请求响应却是b/s架构的典型应用。我们可以知道,基于这种方式,如果要实现服务器端的信息到浏览器端的主动周知是比较难的,一种比较普遍的实现方法是浏览器poll机制,浏览器通过跑一个定时器,按照一定的时间间隔发送HTTP请求到web server,并且利用ajax技术动态更新当前页面的dom结果,但这种方式也有自身的弊端,浏览器不断的polling会导致大量无效的HTTP请求,加重web server的机器负担,特别是随着使用的用户数不断的增长所带来的大量请求压力,另外一个方面是浏览器polling的定时时间的大小也不是很容易设置得比较合理的,但这种方案的实现是比较简单的。

   那么,我们是否有另外的方法呢?有,这里简单介绍一直所谓的comet push技术,但个人认为这种实现方式作为个人探讨技术进行交流还可以,如果用于实际的项目实现中风险还是比较大的,同时也不是一个通用的方法。所谓push技术的基本思想是:浏览器发送一个HTTP请求后,web server接收到该请求后并不释放对应的链接,而是在同一个链接中不断的定时的push http内容片段给到浏览器,因此实现服务器的状态内容可以主动的push到浏览器的目的。

   从上面的简单介绍可以看出:这种技术对每个请求会导致挂接一个进程,一旦处理不好,很容易使得server端挂死。废话少说,下面先给出一个web server 不断的轮询服务器端上的图片然后push到浏览器的测试代码:

 

然后在浏览器上请求对应的url地址就可以动态的看到图片不断的轮播了,这里目前只要:firefox, safaric和chrome支持,IE和opera暂不支持。

 

原创粉丝点击