计算下载时间并重复下载n次

Calculating time for download and repeating the download for n times

本文关键字:下载 时间 计算      更新时间:2024-01-05

我正试图从服务器下载一个文件,并想计算特定下载所需的时间并将其显示出来。下面是用于下载的代码,但我发现计算时间和显示时间很困难。重要的一点是,我可能会一次点击就运行多次代码,我的意思是,代码应该运行几次,比如说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>

$.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

您的问题可以使用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>

现在,如果你想运行特定的时间,你可以设置循环,在循环中使用计时器,将所花费的时间(即时间变量)存储在数组中,并根据你的要求在适当的时间向用户显示数组的结果。参考:如何测量函数执行所花费的时间