Длинный запрос Ajax в Chrome показывает ожидание

В FF и IE я делаю запрос Ajax (Jquery Post) на свой сервер. Запросы вызывают хранимую процедуру sql, которая запрашивает 30 секунд, прежде чем вернуть данные (или немедленно, если данные доступны). Затем данные возвращаются в мой javascript, и я выполняю действия на их основе.

Все в порядке, пока я не доберусь до Chrome, который будет получать обновления, но показывает указатель загрузки и значок загрузки страницы в браузере.

Этот вызов выполняется каждый раз, когда возвращается запрос, поэтому пользователю кажется, что хром всегда ждет загрузки страницы.

Есть ли способ обойти это?

С Уважением.


person Bob    schedule 29.03.2011    source источник
comment
Я думаю, что, возможно, ваше свойство async установлено на false?   -  person Richard Neil Ilagan    schedule 29.03.2011
comment
Сообщение переходит на страницу aspx с поддержкой асинхронности, которая затем вызывает хранимую процедуру asyc.   -  person Bob    schedule 29.03.2011
comment
Нет, я имею в виду сам вызов jQuery AJAX? Это async : true? Независимо от того, является ли ваш ASPX и/или SQL SP асинхронным, не имеет значения, если ваш вызов AJAX не является таковым, потому что ваш браузер все равно будет безвозвратно ждать.   -  person Richard Neil Ilagan    schedule 29.03.2011
comment
Jquery Post по умолчанию является асинхронным.   -  person Bob    schedule 29.03.2011
comment
Ага, это я тоже знаю. Просто убедился, что не оказалось, что async был выключен случайно или что-то в этом роде. Следовательно, комментарий, а не обычный ответ.   -  person Richard Neil Ilagan    schedule 29.03.2011


Ответы (1)


Недавно я столкнулся с той же проблемой. К счастью, я нашел еще один очень полезный вопрос SO. Вот пример того, что я сделал для решения проблемы:

jQuery(document).ready(function() {
  setTimeout(function () {
   $.getJSON("veryLongRequest", function(json) {
   alert("JSON Result: " + json[0].id);});
  }, 500); // You may need to adjust this to a longer delay.
});

Примечание. Я использую сокращенный метод jquery «getJSON», который является оболочкой для вызова ajax с типом данных, установленным на «json». Однако это решение будет работать для всех запросов ajax.

Ссылка:

Остановить пульсацию браузера of doom при загрузке кометы/сервера push iframe

person meta.matt    schedule 29.03.2011