欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

网页消息系统是如何做到不刷新网页提醒的?

程序员文章站 2022-05-21 14:55:25
...
比如像segmentfault这样的网站,怎么做的的?

回复内容:

比如像segmentfault这样的网站,怎么做的的?

可以很直白的回答你,这个是用Ajax的技术做的。首先我们需要了解一下AJAX是什么:

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。 —— AJAX

看了这句话你就应该明白,这正是你所寻求的的东西。下面我们就来写一个简单的示例,获取Segmentfault官方微博的消息,简单的了解AJAX的强大(jQuery版)

http://jsfiddle.net/AXVrT/

至于具体如何AJAX,怎么样AJAX,我希望你能自行Google,网上很多教程,多看看就会了。

大多使用Long Polling来替代传统的ajax轮询

Long Polling原理其实很简单,也很讨巧。与Polling相比,Long Polling客户端也许不会马上收到来自服务端的响应,需要等待一些时间(直到有新消息,或者连接timeout了等等)。同样的,客户端也不再需要定时向服务发送请求了,而是直到收到服务端响应之后,或者连接丢失之后,客户端接着马上请求客户端。这里,我打个比方,传统的Polling一般是由C向S询问:”有我的信件吗?”。S接到询问之后,会立即查询,并且把查询结果告诉C,不管有没有C的信件,要码回复:”嗯,你有X封信。”,要码回复:”没,没有你的信”.而Long Polling更像是这样,C向S发出询问:”有我的信件吗?”,S开始查询,如果有则回复C:”嗯,有你x封信”。如果没有,则不作任何回复,而是让C等着,自己一遍一遍地查询是否有订阅者的信。换句话说:当S收到C的查询请求之后,Polling则只查询一次,并且把查询结果告诉C;而Long Polling收到请求之后,则会一遍一遍地查询,直到有消息才会响应C,不然一直hold Client。

详情:PHP服务端推送技术Long Polling

AJAX只能做到轮询,接收消息有延迟。 WebSockets可以实时收到消息。