0

我正在为我的网络项目开发一个新闻提要模块。新闻提要活动(发布、过滤等)与 Facebook 几乎相似。当用户向下滚动页面(无限滚动)时,我使用了分页模式逐页初始化新闻(例如:每次滚动 20 个帖子)。

我想知道当您的一位朋友分享帖子时,Facebook 如何初始化当前新闻。我猜它使用一个触发器来发送一个 ajax 请求来获取是否存在新帖子。使用计时器触发器(带有每 10 秒发送 ajax 请求的 javascript 超时功能)不是解决此问题的有效方法。

有人对我有任何其他触发建议吗?

提前致谢。

4

1 回答 1

0

如果您要监视主页的网络活动,您会看到https://pct.channel.facebook.com/pull带有一些独特参数的调用。在观看时,您会发现调用需要的时间长度不定,从 1 秒到 ~60 秒不等。

这被称为长轮询,服务器等待直到有新信息可用以发回响应。同时,HTTP 调用处于暂停状态,就好像端点正在加载一样。一旦服务器找到可用的信息,它就会发送带有数据的响应,并关闭连接。然后客户端在接收到数据后重新打开与另一个 HTTP 调用的连接。

于 2013-04-09T18:13:36.473 回答