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
12 changes: 6 additions & 6 deletions 5-network/06-fetch-api/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ fetch('https://another.com/page', {

## cache

По умолчанию `fetch` делает запросы, используя стандартное HTTP-кеширование. То есть, учитывается заголовки `Expires`, `Cache-Control`, отправляется `If-Modified-Since` и так далее. Так же, как и обычные HTTP-запросы.
По умолчанию `fetch` делает запросы, используя стандартное HTTP-кеширование. То есть учитываются заголовки `Expires`, `Cache-Control`, отправляется `If-Modified-Since` и так далее. Так же, как и обычные HTTP-запросы.

Настройка `cache` позволяет игнорировать HTTP-кеш или же настроить его использование:

Expand Down Expand Up @@ -198,7 +198,7 @@ fetch('http://site.com/file', {

Когда посетитель покидает нашу страницу - мы хотим сохранить собранные данные на нашем сервере.

Для этого мы можем использовать событие `window.onunload`:
Для этого мы можем использовать событие `unload` на объекте `window`:

```js run
window.onunload = function() {
Expand All @@ -217,7 +217,7 @@ window.onunload = function() {
У неё есть ряд ограничений:

- Мы не можем посылать мегабайты: лимит тела для запроса с `keepalive` - 64кб.
- Если мы собираем больше данных, можем отправлять их регулярно, "пакетами", тогда на момент последнего запроса в `onunload` их останется немного.
- Этот лимит распространяется на все запросы с `keepalive`. То есть, мы не можем его обойти, послав 100 запросов одновременно - каждый по 64Кбайт.
- Мы не сможем обработать ответ от сервера, если запрос сделан при `onunload`: в тот момент документ уже выгружен, его функции не сработают.
- Обычно сервер посылает пустой ответ на такие запросы, так что это не является проблемой.
- Если мы собираем больше данных, можем отправлять их регулярно, "пакетами", тогда на момент события `unload` их останется немного.
- Этот лимит распространяется на все запросы с `keepalive`. То есть мы не можем его обойти, послав 100 запросов одновременно - каждый по 64Кбайт.
- Мы не можем обработать ответ сервера, если документ выгружен. Поэтому в нашем примере `fetch` завершится успешно благодаря `keepalive`, но последующие функции не сработают.
- В большинстве случаев, например, при отправке статистики, это не проблема, поскольку сервер просто принимает данные и обычно отправляет пустой ответ на такие запросы.