2010-03-22 35 views
0

我想使用JavaScript和Ajax實現下載估算器。使用JavaScript和Ajax下載估算器

我已經走谷谷,現有的stackoverflow上的帖子也找到了下載估計器的現有實現,我發現大部分時間詢問用戶帶寬,然後計算出的數量是戰略。這是一個很好的方法,幾乎​​沒有可靠的東西來估計時間。

我想嘗試的是使用Ajax請求文件大小100KB - 200 KB,然後做數學計算並更新顯示。現在這個問題包含了很多問題,比如網絡,數據包的數量,代理等等。這些所有因素足以拒絕這種做法。但這是我如何做到這一點。

現在,我想在這裏從你所有的投入,使其更好(作爲良好的討論)?什麼都可以添加到這個?我們是否可以在不詢問的情況下了解帶寬用戶?如何才能做得更好?

回答

1

您可以通過在大小的初始頁面請求中包含時間戳,並在瀏覽器中根據當前時間進行計算,從而在技術上測試帶寬。

var size = $size; //in KB 
var timestamp = $timestamp; 
var currTime = new Date().getTime(); 
var kbps = size/((currTime-timestamp)/1000); 

這裏我的$符號表示一個變量,它被模板化到服務器上。這顯然不是完美的,但它會比詢問用戶更準確。

+0

如果啓用了一些傳輸級別壓縮(例如gzip),那麼頁面可能壓縮得比平均數據樣本好很多,所以這可能不會給出正確的結果,但反過來也是一個有趣的想法 – Marek 2010-03-22 13:36:05