1

我目前正在为用户开发一个新闻提要视图,他/她可以在其中查看朋友上传的内容。但是我无法开始工作的是,当有人上传新内容时,它会立即自动出现在每个人的提要上,而无需重新加载页面

如果用户单击页面上的任何位置,Facebook 似乎会自动执行此操作。

欢迎任何帮助,这真的会提升页面的价值!

如果它有效,这是否能够与例如评论和其他内容一起使用?

4

1 回答 1

1

这将需要长时间轮询或推送通知。这很容易用 nodejs 处理,但如果没有 nodejs 之类的东西,这样做会是一场噩梦,并且会大大增加服务器负载,因为它需要浏览器不断地 ping 服务器。

而使用 nodejs,您可以利用 socket.io 或类似的东西,在浏览器和服务器之间建立异步隧道,然后实现 pub/sub。基本上它的工作方式是这样的:

Nodejs 处理浏览器和服务器之间的异步通信,在初始页面加载时,当前内容通过标准 http 请求正常传送到浏览器。此外,向 nodejs 服务器打开了一条隧道,并且用户订阅了该页面的频道。

有人发布了一个新节点,并在 node_save 挂钩中向 nodejs 服务器触发了一个事件,其中包含有关新发布节点的详细信息。然后将新数据发送到通道,连接到页面并因此订阅通道的所有浏览器都会接收新数据,这会导致某些客户端 javascript 使用新数据更新视图 - 或 - 刷新风景。

它很复杂,不是你可以插入并开箱即用的东西。nodejs 集成模块 (http://drupal.org/project/nodejs) 附带了一个用于 drupal 日志的示例。您想要做的事情可能会以类似于该示例的方式实现。

于 2012-12-11T22:01:57.810 回答