Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions 2-ui/5-loading/01-onload-ondomcontentloaded/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,9 @@ window.addEventListener("unload", function() {

## window.onbeforeunload [#window.onbeforeunload]

Если посетитель собирается уйти со страницы или закрыть окно, обработчик `beforeunload` попросит дополнительное подтверждение.
Если посетитель собирается уйти со страницы или закрыть окно, обработчик `beforeunload` может запросить дополнительное подтверждение.

Если мы отменим это событие, то браузер спросит посетителя, уверен ли он.
При отмене действия по умолчанию браузер спросит посетителя, уверен ли он.

Вы можете попробовать это, запустив следующий код и затем перезагрузив страницу:

Expand All @@ -172,7 +172,7 @@ window.onbeforeunload = function() {
};
```

По историческим причинам возврат непустой строки так же считается отменой события. Когда-то браузеры использовали её в качестве сообщения, но, как указывает [современная спецификация](https://html.spec.whatwg.org/#unloading-documents), они не должны этого делать.
По историческим причинам возврат непустой строки также считается отменой действия браузера по умолчанию. Когда-то браузеры использовали её в качестве сообщения, но, как указывает [современная спецификация](https://html.spec.whatwg.org/#unloading-documents), они не должны этого делать.

Вот пример:

Expand All @@ -182,7 +182,7 @@ window.onbeforeunload = function() {
};
```

Поведение было изменено, потому что некоторые веб-разработчики злоупотребляли этим обработчиком события, показывая вводящие в заблуждение и надоедливые сообщения. Так что, прямо сейчас старые браузеры всё ещё могут показывать строку как сообщение, но в остальных -- нет возможности настроить показ сообщения пользователям.
Поведение было изменено, потому что некоторые веб-разработчики злоупотребляли этим обработчиком события, показывая вводящие в заблуждение и надоедливые сообщения. Так что прямо сейчас старые браузеры всё ещё могут показывать строку как сообщение, но в остальных -- нет возможности настроить показ сообщения пользователям.

## readyState

Expand Down Expand Up @@ -275,7 +275,7 @@ document.addEventListener('readystatechange', () => console.log(document.readySt
- Скрипты, вроде `<script>...</script>` или `<script src="..."></script>` блокируют DOMContentLoaded, браузер ждёт, пока они выполнятся.
- Изображения и другие ресурсы тоже всё ещё могут продолжать загружаться.
- Событие `load` на `window` генерируется, когда страница и все ресурсы загружены. Мы редко его используем, потому что обычно нет нужды ждать так долго.
- Событие `beforeunload` на `window` генерируется, когда пользователь покидает страницу. Если мы отменим событие, браузер спросит, на самом ли деле пользователь хочет уйти (например, у нас есть несохранённые изменения).
- Событие `beforeunload` на `window` генерируется, когда пользователь покидает страницу. Если мы отменим действие по умолчанию, браузер спросит, на самом ли деле пользователь хочет уйти (например, у нас есть несохранённые изменения).
- Событие `unload` на `window` генерируется, когда пользователь окончательно уходит, в обработчике мы можем делать только простые вещи, которые ни о чём не спрашивают пользователя и не заставляют его ждать. Из-за этих ограничений оно редко используется. Мы можем послать сетевой запрос с помощью `navigator.sendBeacon`.
- `document.readyState` -- текущее состояние документа, изменения можно отследить с помощью события `readystatechange`:
- `loading` -- документ грузится.
Expand Down