Что происходит с кодом после перенаправления JavaScript (настройка window.location.href)?
У меня есть следующий код перенаправления JavaScript, а затем еще немного кода.
window.location.href = '/someurl';
alert('hello');
alert('hello again');
Это вызывает несоответствие браузера.
В Firefox первое предупреждение видно за доли секунды до перенаправления. Второе предупреждение вообще не видно.
В chrome всплывают оба оповещения, и перенаправление происходит только после нажатия кнопки "ОК" для обоих оповещений.
Есть ли какая-то концепция того, что происходит с кодом после перенаправления, которая может устранить эти различия? Если редирект асинхронный, то что делает Chrome? Я хотел бы понять, что происходит, чтобы я мог определить, что делать в более сложном сценарии, где перенаправление скрыто глубоко внутри некоторых обратных вызовов и другой логики.
2 ответа
Браузер попытается выполнить код после window.location.href = 'url'
пока страница не перейдет к следующему веб-адресу, поэтому число строк кода, которые будут выполняться, зависит от скорости браузера
Сессия Javascript будет бороться за продолжение своей миссии перед лицом надвигающейся гибели. Кодирование таким способом считается непредсказуемым. ... и жестоко.