instant.page:提高網站頁面載入速度
能提高網頁的載入速度,主要原理是當使用者滑鼠停留在連結上時,會透過html預載入這個連結。
在使用者點選連結之前,他們將滑鼠懸停在該連結上。當使用者停留65毫秒時,他們將有一半的機會點選該連結,因此此時開始預載入,平均超過300毫秒,以便頁面預載入。
在移動裝置上,使用者在釋放之前開始觸控他們的顯示器,平均花費90毫秒來預載入頁面。
也可以到https://instant.page/頁面將一段js加入自己的網站,不過其伺服器是在國外。點選標題下載原始碼放入自己的伺服器上。
原始碼:
/*! instant.page v1.0.0 - (C) 2019 Alexandre Dieulot - https://instant.page/license */ let urlToPreload let mouseoverTimer let lastTouchTimestamp const prefetcher = document.createElement('link') const isSupported = prefetcher.relList && prefetcher.relList.supports && prefetcher.relList.supports('prefetch') const allowQueryString = 'instantAllowQueryString' in document.body.dataset if (isSupported) { prefetcher.rel = 'prefetch' document.head.appendChild(prefetcher) const eventListenersOptions = { capture: true, passive: true, } document.addEventListener('touchstart', touchstartListener, eventListenersOptions) document.addEventListener('mouseover', mouseoverListener, eventListenersOptions) } function touchstartListener(event) { /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp` * must be assigned on touchstart to be measured on mouseover. */ lastTouchTimestamp = performance.now() const linkElement = event.target.closest('a') if (!linkElement) { return } if (!isPreloadable(linkElement)) { return } linkElement.addEventListener('touchcancel', touchendAndTouchcancelListener, {passive: true}) linkElement.addEventListener('touchend', touchendAndTouchcancelListener, {passive: true}) urlToPreload = linkElement.href preload(linkElement.href) } function touchendAndTouchcancelListener() { urlToPreload = undefined stopPreloading() } function mouseoverListener(event) { if (performance.now() - lastTouchTimestamp < 1100) { return } const linkElement = event.target.closest('a') if (!linkElement) { return } if (!isPreloadable(linkElement)) { return } linkElement.addEventListener('mouseout', mouseoutListener, {passive: true}) urlToPreload = linkElement.href mouseoverTimer = setTimeout(() => { preload(linkElement.href) mouseoverTimer = undefined }, 65) } function mouseoutListener(event) { if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) { return } if (mouseoverTimer) { clearTimeout(mouseoverTimer) mouseoverTimer = undefined } else { urlToPreload = undefined stopPreloading() } } function isPreloadable(linkElement) { if (urlToPreload == linkElement.href) { return } const urlObject = new URL(linkElement.href) if (urlObject.origin != location.origin) { return } if (!allowQueryString && urlObject.search) { return } if (urlObject.pathname + urlObject.search == location.pathname + location.search && urlObject.hash) { return } if ('noInstant' in linkElement.dataset) { return } return true } function preload(url) { prefetcher.href = url } function stopPreloading() { /* The spec says an empty string should abort the prefetching * but Firefox 64 interprets it as a relative URL to prefetch. */ prefetcher.removeAttribute('href') } |
在頁面加入:
<script src="instant.js" type="module" integrity="sha384-6w2SekMzCkuMQ9sEbq0cLviD/yR2HfA/+ekmKiBnFlsoSvb/VmQFSi/umVShadQI"></script>
相關文章
- 提高網站載入速度的一些小技巧網站
- Nginx開啟gzip壓縮大幅提高頁面載入速度Nginx
- 提高網站載入速度的五大方法網站
- Nginx效能優化功能- Gzip壓縮(大幅度提高頁面載入速度)Nginx優化
- 如何透過最佳化網站提高網頁開啟速度網站網頁
- 網站頁面載入速度在 2019 年對於 Google SEO 排名的影響 - TechMoon 科技月球網站Go
- 如何提高網站的開啟速度?網站
- 前端網頁載入速度緩慢優化策略前端網頁優化
- 網站開啟速度慢應該怎麼提升載入速度?網站
- 基於Vue的SPA如何優化頁面載入速度Vue優化
- Vue 網站首頁載入優化Vue網站優化
- Apache開啟gzip壓縮提高網站速度Apache網站
- 加快你的網站響應速度-Vue懶載入網站Vue
- 提升WordPress網站載入速度的8個小技巧網站
- 【效能優化實踐】優化打包策略提升頁面載入速度優化
- playwright 頁面載入速度度量(錯誤之處,敬請斧正)
- 直播原始碼網站,新使用者登入時的註冊頁面和登入頁面原始碼網站
- 怎樣可以提高網站開啟速度?看看這些方法網站
- Unbounce:70%的消費者承認頁面載入速度會影響網路購物決策
- 網站速度慢,網站速度慢,網站速度慢的幾種原因分析網站
- steam頁面載入錯誤怎麼辦 steam無法載入網頁118win10網頁Win10
- 修改網站404,網站404頁面定製方法網站
- 頁面載入全過程
- 使用Web元件載入頁面Web元件
- 頁面載入和解析流程
- js 進入頁面載入的方法JS
- 怎麼修改公司網站頁面,如何在公司網站後臺修改頁面內容網站
- PbootCMS網站後臺登入頁面樣式怎麼修改boot網站
- 頁面圖片預載入與懶載入策略
- 資訊圖:網頁載入速度到底對你的品牌有多大影響?網頁
- win10系統中網頁載入速度慢的解決方法Win10網頁
- 簡單的網頁登入頁面網頁
- Python頁面載入的等待方式Python
- 13個小技巧用來提高WordPress程式網站的訪問速度網站
- 如何提升網站速度網站
- 網站404頁面怎麼做 404頁面製作步驟網站
- 【.NET開發之美】使用ComponentOne提高.NET DataMap中的載入速度
- 網頁設計師教你怎麼提高網站SEO最佳化網頁網站