微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在js中计算上传速度

如何解决如何在js中计算上传速度

我正在django网站上工作,我认为用户可以上传视频,并且我需要为用户添加一个按钮,以便他可以对其上传速度进行简短测试 经过大量研究后,我找到了此脚本,但似乎无法正常运行,我不知道为什么

    var http = new XMLHttpRequest();
var startTime,endTime;
var myData = "d="; // the raw data you will send
for(var i = 0 ; i < 1022 ; i++) //if you want to send 1 kb (2 + 1022 bytes = 1024b = 1kb). change it the way you want
{
    myData += "k"; // add one byte of data;
}

http.open("POST",url,true);

http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
http.setRequestHeader("Content-length",myData .length);
http.setRequestHeader("Connection","close");

http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        endTime = (new Date()).getTime();
        ShowData();
    }
}
startTime = (new Date()).getTime();
http.send(myData);

function ShowData()
{
    var duration = (endTime - startTime) / 1000;
    var bitsLoaded = myData * 8;
    var speedMbps = ((bitsLoaded / duration) / 1024 / 1024).toFixed(2);
    alert("Speed: " + speedMbps + " Mbps");
}

有没有简单的方法可以计算用户的上载速度或此脚本的任何修补程序

解决方法

您可以使用upload属性的progress事件

http.upload.addEventListener('progress',function(e){
    console.log(e.loaded + ' uploaded out of ' + e.total);
    // do your calculations here
},false);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。