Skip to content

v1.1.0

Choose a tag to compare

@smkrv smkrv released this 12 Jan 23:32
· 49 commits to main since this release

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 Rulesreferrer_policy: no-referrer + requires: ['anonymous-client-ip-when-cross-origin'];
  • Cross-origin fetch — без Purpose header (избегаем 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