【发布时间】:2012-06-30 13:53:06
【问题描述】:
我会尽力解释这一点。但基本上在网站上,当您有一些动态内容(例如消息、通知等)时......您希望在消息到达后立即将这些信息呈现给用户。例如,向用户发送一条新消息,在您的网站标题中显示一个带有计数的气泡。
这些天来,你几乎在每个网站上都能看到这些东西,我不确定实现这种功能的最佳方式。
我最初的想法是编写一些 ajax 调用,然后将其包装在 setInterval 调用中,以便每 30 秒左右请求一次。这里明显的问题是 a) 您必须等待 30 秒才能收到请求,并且 b) 您可能在一天内向服务器请求数百次而没有实际显示的新内容。
我的第二个想法是使用 EventListener,因为它们似乎更理想,因为据我了解,它们仅在服务器告诉它某些内容时才发出请求。但我不是 100% 确定如何构建这样的东西。任何人都可以举出一个简单的例子或指出一些可以作为这样的基础的东西吗?
所以要澄清我想要做什么:
当发生新的事情(例如发送消息或创建通知)时,这将发送一个事件,事件侦听器接收并更新页面上的某些内容,或者显示带有信息的小弹出窗口或更新气泡,例如Messages (2)
我将使用 CakePHP 和 jQuery 来实现它。所以任何特定于此的东西都会很棒......希望有人可以帮助我。
基本上我是在询问 EventListener 与 setInterval 以及它如何与 ajax 调用一起工作......
【问题讨论】:
-
不是重复的,因为我问的是特定于 EventListener vs setInterval
-
对程序员来说更好的问题。se 不是这样
-
你应该使用COMET技术
-
亚历克斯是正确的。您应该研究彗星/ajax 推送。这里有几个你可能会感兴趣的问题:stackoverflow.com/questions/603201/using-comet-with-phpstackoverflow.com/questions/621802/… 这个截屏视频也很好screenr.com/SNH