創建 new Image(),設置 src 為目標頁面 URL。瀏覽器發起請求,服務器響應頭返回時會觸發 onerror(因非圖片資源),此時刻記錄的時間即為響應時間(TTFB 近似)。
var tim = 0;
setInterval(function() { tim++; }, 10); // 10ms 精度計時器
var img = new Image();
var start = tim;
img.onerror = function() {
var latency = (tim - start) * 10; // 毫秒
console.log("響應時間: " + latency + "ms");
};
img.src = "https://www.baidu.com"; // 目標 URL
tim,實際可用 performance.now() 獲取高精度時間戳。// Navigation Timing API (瀏覽器原生)
var timing = performance.timing;
var ttfb = timing.responseStart - timing.requestStart; // 首字節時間
console.log("TTFB: " + ttfb + "ms");
// Resource Timing API (資源級)
var entries = performance.getEntriesByType("resource");
entries.forEach(r => console.log(r.name, r.duration));