【发布时间】:2012-01-27 20:54:13
【问题描述】:
我正在制作一个社交网络,我希望它像 facebook 一样流畅。
就像您查看控制台并查看日志记录一样,它不会一直使用 ajax 调用进行更新。
在我的网站上,我必须加载:通知(新通知的数量和通知本身)、好友请求(与通知相同)、在线好友(如果有在线它将加载在线用户的图片。 ) 那就是每 10 秒加载一次的 6 个 ajax 调用。这会导致巨大的带宽浪费和服务器请求。
因此我想,如果 SERVER 在有新更新时告诉 CLIENT 而不是 CLIENT 每 10 秒询问一次 SERVER。
我已经用谷歌搜索了这个问题并阅读了关于 ajax 推送和一个名为 comet 的框架。 我似乎找不到任何关于如何在 jQuery 上实现它的信息。
【问题讨论】:
-
不是想成为一个混蛋,而是想在没有基本了解网络客户端/服务器协议的情况下构建下一个 Facebook 将是一项艰巨的任务。无论如何,jQuery 是客户端 javascript,所以决不能“从服务器推送”。但是,您可能需要查看“HTML5 通知”
-
你有没有想过实现一个 cron 作业,每 x 时间执行一次服务器范围的推送?它将加载一个文件,该文件将自行运行,无论您指定多少次。我为我的能量棒使用计时器,该计时器在服务器时间上工作,但每五分钟通过一次 cron 作业更新它们。
-
即使服务器可以向客户端发起请求,计算通信的本质是需要有一个监听线程定期检查接收到的消息.
-
我并没有尝试构建下一个 Facebook,完全没有。我正在尝试为我和我的朋友制作一个简单的社交网络,但同时我想在开发方面获得更多经验。这就是为什么。除了我有一个糟糕的虚拟主机,他们的服务器无法处理 PHP 网站上的 1000 个用户,我的网站和所有 ajax 调用,这会让我暂停。