我正在创建一个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
,做你的事。