服务器推送技术,经过考虑,其实发现说白了,就是通过某种手段让服务器从后端主动将数据发送到前台,并且还直接调用js函数将数据呈现出来,传统web模式,包括ajax技术,都是通过客户端发送一个请求,就是说客户端告诉服务器,我需要某种数据了,然后服务器通过各种操作将数据发送给客户端,并显示。
知道了服务器推送技术和基本原理,再就看看,为什么要使用服务器推送技术,什么时候需要使用服务器推送技术
举个例子,现在很多WEBIM系统,比如webqq,右侧有个好友列表,那个列表可能很少有人主动点击,但是又需要随时更新哪些好友上线了,哪些好友下线了,这个怎么做到呢?
很多人能够想到,其实我只要用javascript的setinterval来定时请求服务器就行了,查看数据库里面的内容就可以解决问题了,确实,这是一种解决方法。也是很多地方现在采用的,但是这种方式的问题是,每次进行一次定时请求,客户端就必须和服务器建立一个连接,然后服务器上面程序又得和数据库建立连接并取出数据,然后服务器给前台输出一个页面。而服务器推送技术呢,利用服务器端语言进行定时器操作,或者sleep休眠,可以和服务器直接建立一个持久的连接,只需要定时的读取数据库。
大概用数字描述一下
如果用ajax,一秒钟查询一次数据库,如果进行1000次请求
那么发送了1000次http请求 服务器和数据库建立1000次连接 1000次查询
如果使用服务器推送,同样进行1000次请求的话
只发送了1次http请求,因为是一次性和服务器建立连接 服务器和数据库建立1次连接 1000次查询
服务器方面的东西我也不是很懂,不知道这些数据到底对性能的影响有多大,但是我知道http请求对客户端的显示影响很大,减少http请求对页面速度提升是非常大的帮助。