jQuery即时通知


jQuery Instant Notifications

我正在创建一个web应用程序,我需要一些方法在jQuery和PHP中做以下事情:

  • jQuery向PHP页面发送请求
  • PHP页面检查是否有新的内容,如果没有,则暂停jQuery请求,直到出现
  • jQuery获得响应并发送另一个请求,重复这个过程

我已经尝试了长轮询方法在谷歌与jQuery,但他们几乎做同样的。这正是我要找的东西。

任何帮助都是感激的。

谢谢。

作为一个先兆,如果您确实沿着这条路走下去,您还应该确保您的会话不是每个请求都被锁定的。您很容易遇到这样的情况:当您发出请求时,会话被锁定。

作为一个更好的选择,您可能希望通过每30秒请求一次PHP页面来实现类似"心跳"的解决方案。(这是类似于StackOverflow)做听到通知你,当一个新的消息进来。

比这更好的是在node.js中使用WebSockets。你甚至可以让PHP通知node.js当有"新"东西进来时,就像你说的,这样它总是准确的,你不需要一些PHP脚本一直在运行。

WebSockets

您是否尝试过在JS中设置超时,每次PHP返回没有更新时开始?

:

  • 调用JS函数,通过Ajax (checkPHP())检查PHP。
  • PHP没有新值,返回'0'
  • 在AJAX函数的数据接收函数中,检查返回值,如果返回值== 0:settimeout(checkPHP,5000);
  • 如果返回值为!= 0,做你的事。
  • 可以显示等待图标,只要返回值!= 0