jQuery ajax php长轮询
我一直在尝试使此冗长的轮询脚本正常工作,但我一直陷于困境。这次我对服务器的ajax请求有问题。提供数据的php脚本(使用循环和睡眠来运行长轮询)工作得很好,但是我的jQuery脚本却不能。
到目前为止,我已经尝试对脚本使用普通的
$.ajax()
请求和$.post()
请求,但是当我这样做时,整个脚本将停顿。好吧,脚本实际上按照预期的方式加载,但是页面显示它一直在加载(使用谷歌浏览器,它在屏幕底部显示了“ waiting for”栏)。 php脚本中的60秒超时后,jQuery脚本收到\“ false \”,因为未找到任何数据。然后,该脚本应要求提供数据agian。
我的问题是:如何避免浏览器显示它正在后台加载内容?我的服务器是一台共享服务器,因此在服务器上安装东西时我没有访问权限,因此只能使用javascript(jQuery)和php来解决。
编辑:只是在Internet Explorer中签出了我的脚本,它似乎没有显示脚本正在加载的任何迹象,但是在Google Chrome中仍然是一个问题
编辑发布一些代码:
这是我的JavaScript文件:
if($(\"#interestboard\"))
{
var lasttime = $(\"#lasttime\").val();
var pollurl = $(\"#pollurl\").val();
lpStart();
}
function lpStart()
{
$.ajax({
type: \"GET\",
url: pollurl+lasttime,
async: true,
cache: false,
success:function(data)
{
alert(data);
},
error: function()
{
alert(\"Something went wrong\");
}
});
}
当然,这包裹在$(document).ready()
内
我的php脚本如下所示:
while(time()-$time<60)
{
$this->class = $class[\"id\"];
$this->orderBy(\"timestamp\");
$this->_extraConditions = \"`timestamp`>\'$lastTime\' AND \";
$result = $this->search();
if($result)
return $result;
usleep(250000);
clearstatcache();
}
当使用Firebug(与Google Chrome浏览器一起使用)时,它仅显示已发出请求,而未在控制台中GET字符串的末尾显示通常的加载图标。在Firefox中,它也仅显示请求正在等待处理(显示正在加载图标),但至少浏览器不会像页面正在加载那样工作。
谢谢...
没有找到相关结果
已邀请:
1 个回复
告耸