Перенаправить страницу и запретить загрузку остальной части страницы и выполнение скрипта - PullRequest
4 голосов
/ 06 января 2012

Мне нужно перенаправить страницу, когда она начинает загружаться (например, загружается верхняя часть страницы), и как только она перенаправлена, предотвращает / останавливает загрузку остальной части содержимого страницы и выполнение остальной части сценария.

Если я помещу этот код (window.location = "/ other-page-url";) в первую строку после открытия тега HEAD и перенаправлю страницу на другой, остановит ли он выполнение следующих идущих сценариев? Я хочу быть уверен, что если, скажем, во второй строке будет вызван какой-то счетчик сценариев, сразу после перенаправления он не будет выполнен.

Может быть, в JavaScript есть какой-то метод, который останавливает загрузку / рендеринг страницы?

Ответы [ 3 ]

0 голосов
/ 06 января 2012

Как только вы перенаправили пользователя на другую страницу, текущая страница немедленно прекратит выполнение.

0 голосов
/ 18 апреля 2019

Я тщательно протестировал это в Chrome для Windows, делая заметки из обсуждения в https://stackoverflow.com/a/24070373/5749914. Чтобы изложить ответ Джозефа Силбура:

После того, как вы перенаправили пользователя на другую страницу, текущая страница немедленно прекратит выполнение.

JavaScript внутри тега head выполняется перед любыми тегами сценария в теле документа. Хотя Chrome запрашивает теги script внутри тега body, эти сценарии не выполняются. Единственный исполняемый код - это JavaScript внутри тега head.

Также следует отметить, что Chrome запускает событие DOMContentLoaded перед перенаправлением страницы. Это не имеет значения, если только вы не слушаете что-то конкретно.

Так что да, window.location = "/other-page-url" работает, пока это единственный код в теге head.

0 голосов
/ 06 января 2012

Вы можете сделать это до того, как любой Javascript будет выполнен с использованием тега <meta> в вашем <head> перед любыми тегами <script>:

<meta http-equiv="Refresh" content="0; url=http://www.example.com/">

Это перенаправит браузер на example.com, как толькокак он встречает тег.

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