JQuery Ajax - PullRequest
       9

JQuery Ajax

1 голос
/ 19 июня 2009

Я использую JQuery для выполнения обратных вызовов AJAX для методов страницы asp.net. Все работает хорошо. Однако, когда я щелкаю гиперссылку, чтобы перейти на новую страницу, когда выполняется длительный обратный вызов, целевая страница не отвечает нормально. Похоже, что он ожидает завершения обратного вызова, потому что целевая страница отвечает столько же времени, сколько требуется для завершения обратного вызова. Если обратный вызов не выполняется, новая страница отвечает мгновенно. Проходя по коду в отладчике, я вижу, что при нажатии гиперссылки вызывается обработчик ошибок, который прерывает обратный вызов и устанавливает для ReadyState значение 4 и состояние 0. 0. 1001 *

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

Спасибо. Charlie

Ответы [ 4 ]

0 голосов
/ 19 мая 2010

Параметр success (наряду с «error», «dataFilter» и т. Д.) Функции $ .ajax на самом деле является функцией обратного вызова, которая выполняется при получении ответа от сервера.

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

Пример

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
     //Runs after response is received
     //Put stuff that depends on the response from the server here
  }
});
//Next statement runs immediately after request
//Put stuff here that can run right away
0 голосов
/ 19 июня 2009

Вы когда-нибудь успешно выполняли свой Ajax в вашей конкретной системе? Если у вас нет, это, вероятно, проблема совместимости браузера - я бы попробовал JQuery, Dojo или Scriptaculous, потому что они хорошо работают с обычными браузерами. Сырой ajax может быть довольно неприятным и трудным для отладки.

И, как сказал Юрий, некоторый код поможет. Удачи!

0 голосов
/ 20 июня 2009

Firebug для Firefox родился, чтобы выяснить этот тип проблемы.

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

0 голосов
/ 19 июня 2009

Ошибка в автоматически сгенерированном JavaScript. Можете ли вы включить отладку сценариев и посмотреть, произошла ли ошибка, прежде чем покинуть страницу?

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