【问题标题】:Long Polling: Notifications in every browser长轮询:每个浏览器中的通知
【发布时间】:2012-08-23 19:49:18
【问题描述】:

我正在为我网站的每个页面发起一个长轮询请求。它每秒查看数据库,如果有新内容,它会将其标记为已查看并输出通知。调用 JavaScript 然后开始一个新的 ajax 请求。

现在我在网站上打开多个标签时遇到问题,因为只有一个会收到新通知。这也是同一个用户名跨浏览器登录的问题...

解决这个万无一失的最聪明的方法是什么?

感谢您的意见!

【问题讨论】:

  • 当你像 stackoverflow 一样使用websockets 时,你不需要轮询。您可以将通知发送给所有侦听器(活动会话),一旦通知侦听器,您可以在本地清除通知并检查是否有同一用户的任何其他会话。如果没有来自数据库too的明确通知。我没有将此作为答案发布,因为我知道websockets 实际上不是ajax & long-polling

标签: php javascript ajax long-polling


【解决方案1】:

我认为最好避免浏览器拉动。你会遇到浏览器问题,而且你的基础设施应该是巨大的来支持它。

尝试像Commet这样的服务器端推送技术,

Comet 是一种 Web 应用程序模型,其中一个长期持有的 HTTP 请求 允许 Web 服务器将数据推送到浏览器,而无需浏览器 明确要求。

其他方法可以使用WebSockets

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多