Перейдите с помощью location.href во время асинхронного вызова XMLHttpRequest - PullRequest
2 голосов
/ 16 апреля 2010

У меня есть веб-страница, содержащая что-то вроде этого:

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

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

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

Таким образом, вопрос заключается в следующем: что должно произойти с выполняемыми асинхронными запросами XMLHttp при загрузке новой страницы с помощью location.href?

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

1 Ответ

0 голосов
/ 16 апреля 2010

Вы можете проверить похожий вопрос:

Браузер ожидает завершения вызова ajax даже после вызова прерывания (jQuery)

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

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