Я пытался заставить этот длинный скрипт опроса работать, но я застреваю.На этот раз у меня проблема с запросом ajax к серверу.Сценарий php, который обслуживает данные (выполнение длинного опроса с использованием цикла и сна), работает отлично, но мой сценарий jQuery - нет.
До сих пор я пытался использовать обычный запрос $.ajax()
и$.post()
запрос к сценарию, однако, когда я это делаю, весь сценарий останавливается.Ну, на самом деле скрипт загружается так, как и должно быть, но страница показывает, что он продолжает загружаться (с помощью Google Chrome он показывает панель «ожидания» в нижней части экрана).После 60 секундного ожидания в php-скрипте jQuery-скрипт получает «false», потому что данные не найдены.Затем сценарий должен запросить данные agian.
Мой вопрос: как мне избежать, чтобы браузер показывал, что он загружает что-то в фоновом режиме?Мой сервер является общим сервером, поэтому у меня нет доступа к установке чего-либо на самом сервере, поэтому это нужно решить, используя только javascript (jQuery) и php.
EDIT: только что проверил мой скриптв 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 он также просто показывает, что запрос находится в состоянии ожидания (показывает значок загрузки), но по крайней мере браузер не работает так, как загружается страница.
Спасибо ...