從我已閱讀的內容中,確定網絡速度我需要從已知文件大小的Web下載圖像,然後確定此過程用於獲取變量的時間爲我的Mbps計算。我的第一個問題是,如何使用JavaScript將圖像下載到Windows Phone?我對JavaScript函數有些熟悉,現在我一直在研究,但我不知道如何告訴函數在哪裏保存圖像。另外,我的猜測是,我將使用新的HTML5導航API來確定下載過程的時間。爲此,我應該從window.performance.timing
中使用哪些指標來計算。目前我有一個函數可以返回每個度量標準,但我不確定在計算中使用哪個度量標準。如何在Windows Phone中使用Javascript確定網絡速度
0
A
回答
0
你不需要使用JavaScript來測試性能,我不會推薦它。您也可以使用C#,如下所示。
如果使用便攜類library爲HttpClient
,你可以下載這樣的文件:
HttpClient httpClient = new HttpClient();
HttpResponseMessage response = null;
try
{
// generate a stream on your sever matching the download size requested
response = await httpClient.GetAsync(
"http://www.example.com/speedtest/?size=Large");
response.EnsureSuccessStatusCode(); // Throws exception if bad HTTP status code
// no reason to measure time to save to file system or store the bytes
// unnecessarily
await response.Content.CopyAsAsync(Stream.Null);
}
catch (HttpRequestException hre)
{
// something went wrong
}
裹上面用你的時間代碼來計算下載時間。請記住,無論編程語言如何,執行此類操作都可能消耗大量且不合理的用戶數據計劃。要做一個準確的測試,你需要多次運行以及非常大的下載。我用過的一個測試例如使用了100MB的數據。
在上面的C#代碼,就從這樣的事實中受益,它的使用Null
Stream
這意味着所有所下載的內容的被忽略(而不是暫時複製到像byte
陣列將不被使用的結構) 。
鑑於移動/蜂窩網絡的普遍脆弱性,您會注意到測試之間存在很大差異。
如果您打算在應用程序中下載大量內容,我強烈建議您考慮採用更多自適應樣式技術。不要根據「時間點」選擇網絡性能數字,而應使用實際應用程序數據來衡量數據下載的性能,並根據此數據進行更改。
在評論中,您提到使用IE10中新增的performanceTiming
對象。雖然你可以構建一個符合標準的網頁,然後將資源放在它上面,然後使用對象的各種事件和屬性,但我認爲它會給Windows Phone應用程序(以及使用C#標記的問題)增加不必要的開銷和複雜性,特別是當你想要做一個特定的獨立測試時。由於您無法控制瀏覽器如何下載內容的性質,因此您需要非常小心地確定只下載「網絡速度」測量資源。
另外請注意,無論使用編程語言/平臺構建測試,您都無法控制運行測試時可能發生的其他後臺下載。
相關問題
- 1. 如何確定Windows Phone上的網絡速度
- 2. Windows Phone SDK網絡
- 3. 如何在Windows Mobile中獲得網絡速度?
- 4. Windows Phone 7和Javascript加速度計
- 5. 使用python在windows上的網絡接口速度
- 6. 在Windows Phone中計算速度
- 7. 如何確定位置的來源 - Windows Phone中的GPS或網絡?
- 8. Windows Phone 8 - GPS定位速度
- 9. Sigar網絡速度
- 10. Whatsapp網絡:速度
- 11. 固定在Windows Phone的網格寬度
- 12. 在android中確定互聯網速度
- 13. 確定上網速度
- 14. 的Windows Phone 8,從網絡
- 15. Windows Phone 7網絡服務
- 16. 使用Java優化網絡速度
- 17. 使用TrafficStats網絡連接速度
- 18. 網絡接口速度
- 19. 如何在Windows Phone 7應用程序中使用JSON-RPC(網絡服務)?
- 20. 如何在Windows Phone 8中顯示來自網絡的圖片的進度條?
- 21. 如何從linux內核模塊中確定網絡設備速度
- 22. 如何禁用Windows phone中的充電和網絡識別?
- 23. 如何計算網絡速度?
- 24. 如何檢查網絡連接速度
- 25. 網絡速度如何工作?
- 26. 如何確定CodeIgniter速度?
- 27. 網絡服務發現在Windows Phone
- 28. 如何使用javascript檢查Windows Phone useragent?
- 29. 如何使用swift檢查網絡速度
- 30. 網絡速度調節
有趣的是,感謝您的解決方案。我計劃使用JavaScript的原因是因爲我正在使用可能在IE10中返回的新window.performance.timing值,並且我已經看到了幾個關於收集數據和根據結果計算性能統計數據的示例的時間API。我還沒有遇到過使用這些數據的一件事,那就是計算連接的速度。我正在嘗試使用下載文件所需的時間和已知的文件大小來創建我自己的解決方案。你會有關於如何在JavaScript中做到這一點的任何信息? – Matthew
我不明白你會如何有效地做到這一點,但是爲什麼我發佈了C#解決方案。您不需要使用JavaScript,也沒有有效的方法來轉儲我所知道的響應。下載大型「blob」來測試JavaScript中的網絡性能可能會導致應用程序出現內存不足錯誤。 – WiredPrairie