如何获取XMLHttpRequest请求的响应时长?
你只需要在请求发起前记录起始时间戳,待请求完成后用结束时间戳减去起始时间戳,就能得到请求的响应时长,修改后的代码如下:
let xhttp = new XMLHttpRequest(); // 记录请求发起前的时间戳 const requestStartTime = Date.now(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // 请求完成时计算时间差,单位为毫秒 const responseDuration = Date.now() - requestStartTime; console.log(`请求响应时长为:${responseDuration}ms`); // 后续处理响应的逻辑写在这里 } }; xhttp.open("GET", "你的实际请求地址", true); // 注意时间戳记录要在send方法调用之前 xhttp.send();
- 上述方案统计的是从请求发起前到收到完整响应的总耗时,就是常规场景下的接口响应时长
- 如果需要更高精度的时间统计,可以把
Date.now()替换为performance.now(),后者可以提供微秒级的时间精度 - 如果你需要拆分统计请求各阶段耗时(比如DNS查询、TCP连接建立、首包响应时间等),可以调用浏览器Performance API获取更细维度的请求时序数据
内容的提问来源于stack exchange,提问作者culldog88
相关产品推荐
相关产品推荐

