Когда назначение на location.href вступает в силу?
Я пытаюсь понять, какова хронология событий после назначения на location.href. Кажется, что само назначение не останавливает выполнение текущего стека вызовов js, и поэтому можно попытаться выполнить несколько назначений подряд. Какова семантика такого кода:
<!doctype html>
<script>
var h=location.href;
location.href="http://google.com";
location.href=h+"#ok";
</script>
Гарантируется ли, что браузер будет выполнять два HTTP GET? Гарантируется ли, что они будут в последовательном порядке? Будет ли браузер ждать окончания выполнения стека? Будут ли оба назначения вызывать два отдельных события onblur? Я заметил, что в Chrome мой приведенный выше пример заставляет браузер отображать в течение короткого периода "vanisoft.pl/~lopuszanski/public/redirect_test.html" в адресной строке с последующим перенаправлением на Google, но если я изменю последнюю строку быть:
location.href=h;
тогда существует бесконечный цикл.
Вопрос довольно прагматичен в ситуации, когда существует более одного фрагмента js, который может повлиять на маршрутизацию в одностраничном приложении, например.