2014-12-13 41 views
1

嘿傢伙是新來的JavaScript實際上..我試圖找到一個文件的下載時間。所以我已經確定了文件的大小,並與當前時間劃分..但它不是給我正確的結果。用javascript計算下載時間

我曾嘗試

function get_filesize(url, callback) { 
var xhr = new XMLHttpRequest(); 
xhr.open("HEAD", url, true); // Notice "HEAD" instead of "GET", 
          // to get only the header 
xhr.onreadystatechange = function() { 
    if (this.readyState == this.DONE) { 
     callback(parseInt(xhr.getResponseHeader("Content-Length"))); 
    } 
}; 
xhr.send(); 
} 




get_filesize("http://upload.wikimedia.org/wikipedia/commons/9/96/Google_web_search.png", function(size) { 

var estimatedtime = (new Date().getTime())/size; 
console.log(estimatedtime); 

}); 

當我做這樣做我得到輸出32245538.389347337代碼。

我期望的是在控制檯中獲得hh:mm:ss的時間。

我怎樣才能達致這?..任何幫助將是巨大的感謝

+0

究竟是什麼,你想在這裏算?下載速度?或者乾脆下載時間。 – itdoesntwork 2014-12-13 06:11:51

回答

0

後您計算值,將其轉換爲日期像下面(當然,改變的硬編碼值estimatedtime):

var time = new Date(32245538.389347337); 
 
alert(time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds());

+0

當我用aq音樂文件替換圖像文件時,我得到了像nan nan nan一樣的警報 – lovejs 2014-12-13 08:25:35

+0

我還收到了錯誤信息,如請求的資源上沒有「內容長度」標題。因此不允許原產地'null'訪問。 babe.html:21 NaN:NaN:NaN – lovejs 2014-12-13 08:42:49

+0

這與代碼無關。你會得到nan:nan:nan,因爲由於缺少內容長度而無法初始化日期。服務器的響應頭是什麼?如果它是你自己的服務器,你使用的是什麼服務器。你需要檢查爲什麼服務器沒有返回內容長度? – 2014-12-13 12:58:40