Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Mykola Myslovskyi <adriandecita@gmail.com>
  • Loading branch information
undead404 and AdriandeCita authored Apr 13, 2024
1 parent 8f1e597 commit 0c4f6a8
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions files/uk/web/html/element/script/type/speculationrules/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,14 @@ browser-compat: html.elements.script.type.speculationrules

- `"eagerness"`

- : Рядок, що дає браузеру підказку щодо того, наскільки швидко він має попередньо завантажувати або попередньо візуалізувати цільову сторінку посилання, щоб збалансувати виграш щодо продуктивності відносно витрат ресурсів. Можливі значення:
- : Рядок, що дає браузеру підказку щодо того, наскільки швидко він має попередньо завантажувати або візуалізувати цільову сторінку посилання, щоб збалансувати виграш щодо продуктивності відносно витрат ресурсів. Можливі значення:

- `"immediate"`
- : Розробник вважає, що за посиланням перейдуть з дуже високою ймовірністю, чи документ може завантажуватися суттєвий час. Попереднє отримання або попередня візуалізація має початися якомога швидше, за винятком випадків, коли цьому заважають налаштування користувача або обмеження щодо ресурсів.
- `"eager"`
- : Розробник бажає попередньо завантажити чи візуалізувати велику кількість переходів, якомога раніше. Попереднє отримання або попередня візуалізація має початися при найменшому натяку на те, що за посиланням можуть перейти. Наприклад, користувач може порухати курсор миші в бік посилання, навести на неї чи передати їй фокус на якусь мить, або зупинити прокручення, коли посилання перебуває на видноті.
- `"moderate"`
- : Розробник прагне золотої середини між `eager` і `conservative`. Попереднє отримання або візуалізація має початися, коли є доцільна вказівка на те, що користувач перейде за посиланням у найближчому майбутньому. Наприклад, він може прокрутити сторінку так, що посилання потрапить в область перегляду, або торкнутися його на якусь мить.
- : Розробник прагне золотої середини між `eager` і `conservative`. Попереднє отримання або візуалізація має початися, коли є резонна вказівка на те, що користувач перейде за посиланням у найближчому майбутньому. Наприклад, він може прокрутити сторінку так, що посилання потрапить в область перегляду, або торкнутися його на якусь мить.
- `"conservative"`
- : Розробник бажає отримати певні переваги від спекулятивного завантаження, витрачаючи доволі невеликі ресурси. Попереднє отримання або візуалізація має початися лише тоді, коли користувач починає клацати по посиланню, наприклад, при події {{domxref("Element.mousedown_event", "mousedown")}} або {{domxref("Element.pointerdown_event", "pointerdown")}}.

Expand All @@ -137,6 +137,7 @@ browser-compat: html.elements.script.type.speculationrules
- : Рядок, що представляє рядок конкретної політики посилача для використання при запитуванні URL, заданих у правилі – дивіться можливі значення в [`Referrer-Policy`](/uk/docs/Web/HTTP/Headers/Referrer-Policy). Такий рядок потрібен, щоб дати змогу сторінці-посилачу задавати для спекуляційних запитів суворішу політику, ніж та, що вже задана для всієї сторінки (або усталено, або за допомогою `Referrer-Policy`).

> **Примітка:** Міжсайтове попереднє отримання вимагає, щоб політика посилача була щонайменше так само сувора, як усталене значення `"strict-origin-when-cross-origin"` — отже, це може бути `"strict-origin-when-cross-origin"`, `"same-origin"`, `"strict-origin"` або `"no-referrer"`. Поблажливіша політика, задана в правилах спекуляції, пересилює суворішу політику, задану на сторінці-посилачу, якщо вона все ще є достатньо суворою для міжсайтових запитів.
> **Примітка:** У випадку правил документа буде використана задана політика посилача для посилання, що дало збіг (наприклад, за допомогою атрибута [`referrerpolicy`](/uk/docs/Web/HTML/Element/a#referrerpolicy)), якщо правило не задає політику, що її пересилює.
- `"relative_to"`
Expand Down Expand Up @@ -296,7 +297,7 @@ if (
{ "where": { "href_matches": "/user/*" } }
```

Будь-яка умова може бути заперечена, коли поставити її всередину умови `"not"` – це означає, що коли така вкладена умова дає збіг, до посилання _не буде_ застосовуватися правило спекуляції, а коли _не_ дає – то _буде_. Наступний приклад призведе до того, що до всіх посилань, які _не_ відповідають патерну URL `/logout`, буде застосовано правило, але не до посилань, що відповідають `/logout`:
Будь-яку умову можна обернути, якщо поставити її всередину умови `"not"` – це означає, що коли така вкладена умова дає збіг, до посилання _не буде_ застосовуватися правило спекуляції, а коли _не_ дає – то _буде_. Наступний приклад призведе до того, що до всіх посилань, які _не_ відповідають патерну URL `/logout`, буде застосовано правило, але не до посилань, що відповідають `/logout`:

```json
{ "where": { "not": { "href_matches": "/logout" } } }
Expand All @@ -306,7 +307,7 @@ if (

Кілька умов можна поєднати всередині умов `"and"` або `"or"` — такі умови приймають за значення масиви, що містять кілька умов, серед яких усі або будь-яка (відповідно) повинні давати збіг, щоб до посилання застосовувалися правила спекуляції. За допомогою `"and"` або `"or"` можна утворювати умови з багатьма рівнями вкладеності: немає обмежень щодо глибини вкладеності умов.

Розумно уявляти об'єкт `"where"` як такий, що рівносильний операції `if`. Тож
Доречно уявляти об'єкт `"where"` як такий, що рівносильний операції `if`. Тож

```text
{ and: [A, B, { or: [C, { not: D }] }] }
Expand Down Expand Up @@ -379,7 +380,7 @@ if (A && B && (C || !D)) {

Це типовий випадок використання `"relative_to"`.

3. Інший потенціальний (хоч і рідкісніший) випадок використання трапляється, коли URL задані у вигляді `home`, а не `/home`. Якщо документ розташований за адресою `https://example.com/some/subpage.html`, а правила — за адресою `https://example.com/resources/rules.json`, то:
3. Інший потенційний (хоч і рідкісніший) випадок використання трапляється, коли URL задані у вигляді `home`, а не `/home`. Якщо документ розташований за адресою `https://example.com/some/subpage.html`, а правила — за адресою `https://example.com/resources/rules.json`, то:

- `"relative_to": "document"` змусить `home` відповідати `https://example.com/some/home`.
- `"relative_to": "ruleset"` змусить `home` відповідати `https://example.com/resources/home`.
Expand Down Expand Up @@ -450,7 +451,7 @@ if (A && B && (C || !D)) {

### Приклад `eagerness`

Наступний набір правил документа показує, як `eagerness` можна скористатися, аби підказати щодо терміновості, з якої браузер повинен попередньо візуалізувати кожний набір посилань, що дає збіг.
Наступний набір правил документа показує, як `eagerness` можна скористатися, аби підказати браузеру, наскільки терміново він повинен попередньо візуалізувати кожний набір посилань, що дає збіг.

```html
<script type="speculationrules">
Expand Down

0 comments on commit 0c4f6a8

Please sign in to comment.