// ==UserScript== // @name 网页加载分析(改) // @version 1.08 // @description 测试网页加载速度并显示加载最慢的三个网址的域名,二改添加了对Via浏览器toast的调用。 // @description:en Test the webpage loading speed and display the domain names of the three slowest loading URLs. // @match *://*/* // @run-at document-start // @author yzcjd & nobody // @author2 Lama AI 辅助 // @namespace https://scriptcat.org/zh-CN/users/157252 // @exclude *://*.cloudflare.com/* // @exclude *://*.recaptcha.net/* // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; const loadTimeElement = document.createElement('div'); loadTimeElement.id = 'loadTimeDisplay'; loadTimeElement.style.cssText = ` position: fixed; top: 90%; left: 50%; transform: translate(-50%, -50%); background: grey; padding: 5px; border-radius: 8px; box-shadow: 0 0 15px rgba(0,0,0,0.3); white-space: nowrap; width: 400px; z-index: 9999; background-color: #f5f5f5; color: black; `; const startTime = performance.now(); let slowestRequests = []; const networkObserver = new PerformanceObserver((list, observer) => { const entries = list.getEntries(); entries.forEach(entry => { slowestRequests.push({ name: entry.name, duration: entry.duration }); slowestRequests.sort((a, b) => b.duration - a.duration); slowestRequests = slowestRequests.slice(0, 3); }); }); networkObserver.observe({ entryTypes: ['resource'] }); window.addEventListener('load', () => { const endTime = performance.now(); const timeElapsed = endTime - startTime; let networkInfo = ''; let networkInfoHTML = ''; if (slowestRequests.length > 0) { networkInfo = slowestRequests.map(req => { try { const url = new URL(req.name); return `Slow: ${url.hostname} (${req.duration.toFixed(2)}ms)`; } catch (error) { return `Slow: Invalid URL (${req.duration.toFixed(2)}ms)`; } }).join('\n'); networkInfoHTML = slowestRequests.map(req => { try { const url = new URL(req.name); return `slow: ${url.hostname} (${req.duration.toFixed(2)}ms)
`; } catch (error) { return `slow: Invalid URL (${req.duration.toFixed(2)}ms)
`; } }).join(''); } else { networkInfo = '[none]'; networkInfoHTML = '[none]'; } // 检查是否存在 window.via.toast if (window.via && typeof window.via.toast === 'function') { const message = `Time: ${timeElapsed.toFixed(2)}ms\n${networkInfo}`; window.via.toast(message); } else { loadTimeElement.innerHTML = `

Time: ${timeElapsed.toFixed(2)}ms

${networkInfoHTML} `; document.body.appendChild(loadTimeElement); setTimeout(() => { loadTimeElement.remove(); }, 5000); } }); })();