我正在尝试从服务器下载文件,并希望计算该特定下载所需的时间并显示它。下面是用于下载的代码,但我发现难以计算时间并显示它。重要的一点是,我可能会在一次点击时多次运行代码,我的意思是,代码应该运行几次,比如说15次,我需要计算每次迭代的时间,并且应该向用户显示所有值。有人可以帮我吗?我是编程的新手,这就是为什么我可能会问非常愚蠢的疑惑,但请不要介意。
<html>
<head>
<script src="jQuery.js"></script>
<script type="text/javascript">
$.ajax({
url: "input.txt",
})
.done(function(data){
$("#textResponse").val(data);
})
</script>
</head>
<body>
<textarea rows="50" cols="90" id="textResponse"></textarea>
</body>
</html>
答案 0 :(得分:2)
$.ajax
有一个beforeSend
回调。可以使用它将开始时间附加到jqXHR
对象。然后,您可以计算done
回调与开始时间之间的时差:
$.ajax({
url: '/echo/html/',
beforeSend: function (xhr) {
xhr.start = new Date().getTime();
}
}).done(function (res, status, xhr) {
var end = new Date().getTime();
var elapsed = end - xhr.start;
$('body').append('<p>Elapsed =' + elapsed + ' (ms)</p>');
});
的 DEMO 强>
答案 1 :(得分:1)
使用Date()。getTime()
可以解决您的问题
<head>
<script src="jQuery.js"></script>
<script type="text/javascript">
var start=new Date().getTime(); // Initializes the timer
$.ajax({
url: "input.txt",
})
.done(function(data){
$("#textResponse").val(data);
})
var end =new Date().getTime();
var time=end-start; //calculates the time taken
alert('Time taken for downloading the file: ' + time);
</script>
</head>
<body>
<textarea rows="50" cols="90" id="textResponse"></textarea>
</body>
</html>
现在,如果你想运行一定时间,你可以设置循环,在循环中使用计时器,将时间,即时间变量存储在数组中,并在适当的时间向用户显示数组的结果根据您的要求。 参考: How to measure time taken by a function to execute