如何测量任何异步 ajax 电话的延迟!!
是否有任何特定的库或api可用于从浏览器中提取所有这些信息
我一直在寻找可以在IE6上运行的解决方案
答案 0 :(得分:0)
您可以在浏览器的控制台中查看此内容
或者你也可以查看你的请求函数的时间,例如:
function sendRequest(url) {
var startTime = new Date(); //start time
$.ajax({
//your request here
,done: {
var endTime = new Date(); //end time
console.log("Request took " + (endTime-startTime) + " ms.");
}
}
}
关于异步调用,这取决于您的需求。如果您需要完整的执行周期(在客户端建立请求,发送请求,服务器端操作,接收数据,处理响应),那么您可以以相同的方式执行,但您必须确保您正在测量相同的操作,换句话说,匹配开始到结束,并确保它们对应。虽然基于我们讨论异步请求的事实,您应该仅测量部分,直到请求离开客户端。这取决于您的应用程序的实现方式。
答案 1 :(得分:0)
以下代码包含ajax函数
https://stackoverflow.com/a/18309057/2450730
用于衡量获得响应所需时间的函数。
可以使用Date
对象完成此操作,但如果您想要精确输出,我会向您展示更好的方法。这仅适用于现代浏览器。
https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
//Ajax XHR2
function ajax(a,b,c){ // Url, Callback, just a placeholder
c=new XMLHttpRequest;
c.open('GET',a);
c.onload=b;
c.send()
}
// Measuring the time in microseconds it takes to make the request.
var start;
function measure(){
start=window.performance.now();
ajax('URL',function(){
var Delay=window.performance.now()-start;
alert(Delay);
});
}
measure()
返回值以毫秒为单位。或者用window.performance.now()
替换Date.now()
。
通过更改ajax函数,还可以对ajax调用执行的各个进程进行计时。使用onreadystatechange
。
如果您有疑问,请询问。