Вызов Jquery Ajax не позволяет другим ссылкам работать нормально - PullRequest
2 голосов
/ 25 декабря 2010

У меня есть страница с множеством "обычных" ссылок (<a href=XXX>), часть этой страницы извлекает данные с помощью метода jQuery Ajax (этот вызов может занять около 20-30 секунд ...).

Я обнаружил, что если я нажму одну из ссылок, когда Ajax-вызов еще выполняется, я не смогу нормально перенаправить на адрес ссылки, и мне придется ждать, пока Ajax-вызов не будет завершен (даже если он должен быть асинхронным... не так ли?)

Полагаю, мне нужно прервать вызов Ajax, если какая-либо ссылка нажата до его завершения - кто-нибудь может объяснить мне, как это сделать?

Приветствия

1 Ответ

2 голосов
/ 25 декабря 2010

Если ссылки не работают, ваш ajax-вызов должен быть синхронным. Синхронные (блокирующие) запросы (async: false) блокируют ваш браузер и не позволяют ему выполнять какие-либо действия.

Проверьте код, чтобы узнать, передали ли вы ложный асинхронный параметр в функцию .ajax. Если вы возвращаете результат вызова .ajax в переменную, вы должны были использовать блокирующий запрос.

jQuery.ajax Пример: загрузка данных синхронно. Блокирует браузер, когда запросы активны. Когда необходима синхронизация, лучше блокировать взаимодействие с пользователем другими способами.

var html = $.ajax({

  url: "some.php",

  async: false

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