v1.1.0
v1.1.0
Архитектура
- Единое ядро —
src/core.js+ entrypoints (IIFE/ESM) через Rollup; - Версия из package.json — инжектится при сборке (
__VERSION__); - Генерируемые файлы —
prefetch.js,prefetch.esm.js,dist/.
Производительность
- Speculation Rules буферизация — URL группируются и вставляются одним
<script>за idle tick; - MutationObserver оптимизация —
querySelectorвместоquerySelectorAll; - navigator.userAgentData — с fallback на UA sniffing;
- parseUrl() — один
new URL()вместо двух.
Безопасность и приватность
- Cross-origin Speculation Rules —
referrer_policy: no-referrer+requires: ['anonymous-client-ip-when-cross-origin']; - Cross-origin fetch — без
Purposeheader (избегаем preflight),credentials: 'omit',referrerPolicy: 'no-referrer'; - Safety timeout — 30 сек предохранитель для
<link rel=prefetch>с удалением key при неуспехе; - Блокировка 3G — prefetch отключается на 3G соединениях.
Жизненный цикл
- destroy() — полная очистка: таймеры,
touchCancel,AbortControllers, idle callbacks, буфер SpecRules; - flushSpecBuffer — проверяет
disabledпослеdestroy(); - pageshow — обновление
currentKeyдля bfcache restore; - popstate/hashchange — поддержка SPA-гибридов.
Совместимость
- window.PrefetchRu — основной API (избегаем коллизий с
window.Prefetch); - 304 как успех — HTTP 304 Not Modified считается успешным prefetch;
- data-prefetch-specrules-fallback — опциональный fallback при Speculation Rules.
Full Changelog: v1.0.10...v1.1.0
Integrity (SRI) IIFE — prefetch.min.js
sha384-mtWj+Hx/5xw4Vs9KyuZGevAJ2CfZLIesU5FqxBHM54PoADhcKgBjMzQuq3ggf+rh