AJAX обратный вызов блокирует страницу - PullRequest
0 голосов
/ 30 июля 2009

У меня есть длительный запрос к базе данных, который я поместил в асинхронный обратный вызов AJAX (или мне так кажется), чтобы позволить пользователю перейти на другую страницу, если он не заинтересован в результатах.

Независимо от того, вызываю ли я запрос автоматически после загрузки страницы или по щелчку, страница всегда блокируется до тех пор, пока не вернется, то есть ссылки и кнопки не будут работать. Однако собственные меню Internet Explorer 6 хороши, так что сам IE не перегружен.

Что я могу делать не так? Кажется, что мой запрос на самом деле не асинхронный. Вот фрагмент кода:

this.XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
this.XmlHttp.open("POST", url, true);
this.XmlHttp.send(data);

1 Ответ

0 голосов
/ 30 июля 2009

Страницу блокирует не браузер, а сервер.

IIS обрабатывает только один запрос от каждого пользователя. Поскольку у пользователя уже есть запрос от вызова AJAX, над которым работает сервер, новый запрос будет помещен в очередь до тех пор, пока не будет обработан первый запрос.

Чтобы длительный запрос не блокировал пользователя на сервере, вы должны сделать страницу, чтобы вызов AJAX получал безсессионное обращение. Таким образом, он не связан с пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...