2010-04-16 1 views
2

У меня есть веб-страницу, содержащую что-то вроде этого:Navigate с location.href во время XMLHttpRequest асинхронного вызова

<div onclick="location.href = 'AnotherPage';"> 

Эта страница также использует асинхронные XMLHttpRequests для некоторого обновления AJAX.

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

Итак, вопрос: что должно произойти с асинхронными XMLHttpRequests в процессе загрузки новой страницы с использованием location.href?

Редактировать - Я работал над этой проблемой, обрабатывая window.onbeforeunload и прерывая ожидающий запрос async. Вопрос остается, хотя, нужно ли мне это делать?

ответ

0

Вы можете проверить подобный вопрос:

Browser waits for ajax call to complete even after abort has been called (jQuery)

Я также видел несколько вопросов, на которых обсуждались вопросы истории браузера были возникающие в подобных обстоятельствах, и обходной путь был обернуть изменения местоположения в setTimeout() звоните с 0 задержка. Если бы это было исправление поведения, я был бы озадачен соображениями, но было бы интересно увидеть эффект тем не менее.

+0

Спасибо, что я это видел, но в ответе спрашивает, что причина была на стороне сервера. Я думаю, что если бы я собирался обернуть все мои изменения местоположения, я мог бы просто вызвать функцию, которая также может отменить запросы. – OlduwanSteve

 Смежные вопросы

  • Нет связанных вопросов^_^