Что происходит с кодом после перенаправления JavaScript (настройка window.location.href)?

У меня есть следующий код перенаправления JavaScript, а затем еще немного кода.

window.location.href = '/someurl';
alert('hello');
alert('hello again');

Это вызывает несоответствие браузера.

В Firefox первое предупреждение видно за доли секунды до перенаправления. Второе предупреждение вообще не видно.

В chrome всплывают оба оповещения, и перенаправление происходит только после нажатия кнопки "ОК" для обоих оповещений.

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

2 ответа

Решение

Браузер попытается выполнить код после window.location.href = 'url' пока страница не перейдет к следующему веб-адресу, поэтому число строк кода, которые будут выполняться, зависит от скорости браузера

Сессия Javascript будет бороться за продолжение своей миссии перед лицом надвигающейся гибели. Кодирование таким способом считается непредсказуемым. ... и жестоко.

Другие вопросы по тегам