nik*_*iko 6 javascript php ajax
好吧,我不知道哪种方法最有效.有人可以帮助我找到更好的算法.
好吧,让我们在用户发帖的时候采取像facebook这样的例子,它将更新给他的朋友而不需要任何页面刷新,我们通过ajax请求知道它.但我们怎么知道有人发布了新的东西呢?可能就像每2秒钟放一个计时器并发送一些表的ajax请求并检查某些用户是否发布了某些内容.但有没有办法没有设置计时器,因为每2秒执行一次操作可能会导致严重的服务器问题我是这么认为的?只是想知道是否有更好的方法而不是设置计时器?
任何帮助是极大的赞赏.
目前Facebook和谷歌采用的是一种称为长轮询的技术.
这是一个简单的系统,客户端向服务器发出AJAX请求.服务器接收请求并检查它是否具有请求所需的数据.如果不是,则请求保持打开但由服务器延迟.第二个服务器有数据,请求被处理并返回给客户端.
如果你打开Facebook,你会看到发布到Facebook的请求大约需要55秒才能完成.同样适用于Gmail和其他一些似乎有某种推送系统的网络应用程序.
以下是如何处理这些请求的简单示例:
客户:
timestamp 0服务器:
timestamp 0通过检查服务器上数据的时间戳来比较请求.让我们说服务器上的数据有timestamp 234.客户:
timestamp 234.服务器:
timestamp 234服务器上数据的当前标记进行比较.timestamp 235.您可以阅读更实际更新的现代机制的更深入的解释.