基于ajax轮询和缓存技术的web实时系统的开发

基于ajax轮询和缓存技术的web实时系统的开发

ID:10062375

大小:29.50 KB

页数:7页

时间:2018-05-23

基于ajax轮询和缓存技术的web实时系统的开发_第1页
基于ajax轮询和缓存技术的web实时系统的开发_第2页
基于ajax轮询和缓存技术的web实时系统的开发_第3页
基于ajax轮询和缓存技术的web实时系统的开发_第4页
基于ajax轮询和缓存技术的web实时系统的开发_第5页
资源描述:

《基于ajax轮询和缓存技术的web实时系统的开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于Ajax轮询和缓存技术的Web实时系统的开发摘要:随着Ajax技术的兴起,越来越多的应用从桌面搬到了浏览器。然而HTTP协议的无状态特性使得它很难应用于实时系统,例如:实时股票行情,即时通信,即时报价等。本文分析了Web实时系统中轮询的两种方式以及遇到的问题,提出了使用Comet的解决方法和和将数据缓存到应用层的解决方法。这些方法能够提高实时系统的访问效率,减轻数据库访问的压力。关键词:Ajax轮询;Web实时系统中图分类号:TP311.52文献标识码:A文章编号:1674-7712(2014)12-0000-02H

2、TTP协议是Internet上大部分信息交换的基础。请求/响应使它成为了经典的Web系统模型,它的每个连接使用一个线程,因此保证了Web服务器能够快速为浏览器端的请求提供服务,而且防火墙、代理服务器不会对HTTP通道端口进行限制,所以基于Web的系统就有很大的可伸缩性。在这种模式下,少量的Web服务器就可以处理很大数量的用户请求,对于内容管理系统、搜索引擎和电子商务站点等Web系统而言,这非常适合。7然而,它也有一些局限性。特别是它的无状态、单向协议特征,即请求必须由浏览器客户端发出,而Web服务器则只能在对请求的响应中

3、发送数据,使得它不太适合使用于Web实时系统,例如基于Web的聊天室、股票行情、电子邮件等。Web实时系统中,浏览器端的数据信息需要得到及时更新,那么就要在请求/响应过后仍然让浏览器与Web服务器交互。如今,采用较多的方式是使用Web轮询。一、Web轮询(polling)Web轮询是指Web端通过技术手段循环向服务器端发送请求并得到响应数据的过程。Web轮询可以分为传统轮询和Ajax轮询。(一)传统轮询在Web系统开发早期常使用标签实现页面刷新。该标签需要定义在html的标签中,例如:它会指示浏览器在指定秒数(10秒)之

4、后重新装载或重定向页面。这种轮询方式相对简陋,因为当页面没有新的数据要显示时,不得不重新呈现相同页面,即便有新数据时,页面的数据呈现部分更改很小,其他的大部分内容没有变化。总结起来,该轮询方式的缺点在于:1.用户体验很差,整个页面需要不断刷新;2.对服务器造成较大压力,并且造成带宽的极大浪费。(二)Ajax轮询7Ajax轮询是一项非常常见的技术,例如,大多数webmail应用程序就是通过Ajax轮询技术在新电子邮件到达时进行显示的。Ajax可以使用JavaScript调用XMLHttpRequest对象发出HTTP请求,

5、从而实现服务器与浏览器之间的异步通信。Ajax隔一段时间就去服务器请求数据,每次重新请求不必传输整个页面,从而能够进行增量式的更新。另外使用Ajax轮询方式需要合理设置间隔时间,间隔太短,短时间内的大量请求会对服务器造成巨大压力;间隔太长,服务器上的新数据就需要较长时间到达客户机,实时性不好,所以性能和及时性会产生较大反比。Ajax轮询有两种实现方式。第一种是使用setTimeout()方法,该方法会从页面载入后延迟指定的时间去执行一个表达式或函数,可以通过创建一个函数循环重复调用setTimeout或使用递归来实现重复

6、的操作。第二种是使用setInterval()方法,该方法是从页面载入后每隔指定的时间执行一个表达式或函数,它通常和window.clearInterval一起使用。一般来讲,如果要求在每隔一个固定的时间后就立马执行某动作,那么最好使用setInterval()方法;而如果不想让程序产生互相干扰,尤其是每次方法的调用需要较长时间进行处理时,那么最好使用setTimeout()。二、Ajax轮询产生的问题7然而Ajax轮询方法也会产生一些问题(如图1所示)。因为应用服务器与数据库服务器通常处于分布式网络结构中,所以轮询过程

7、中,客户端每对服务器进行一次请求,服务器上的应用(application)都会与网络另一端的数据库服务器发送数据请求。图1普通Ajax轮询应用服务器与数据库需要首先建立起socket通信,在通信管道使用传输协议,并且应用服务器存放数据的对象也必须要进行序列化。因此会造成数据库很大的访问压力,这种方法不支持大量的页面同时轮询。三、解决方案针对上述问题,以Web聊天室实时系统为例,可以有如下两种解决方案。(一)基于Comet的解决方案Comet方式简单来讲就是一种长连接的http(longlivedhttp)。初始情况下由B

8、rowser端主动发起请求,Server端响应回答后并不关闭连接。在这个期间内,如果服务器端有新数据服务器端可以使用同一个连接把要更新的数据主动发送给浏览器客户端。Comet又有很多种实现方式,基于AJAX7的长轮询方式和基于iframe及htmlfile的流方式。虽然对于单个操作来说,每次只需要新建一个连接,但是由

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。