此刻入度条有了,但是咱们还想晓得速度是几何理当怎么样办呢。
可以颠末过程谋略的举动取得其上传的速度,咱们在progress事情中是晓得已经上传的文件年夜小的,那咱们在uploadProgress举动中没过1秒都往谋略一下这一次以及上一次的loaded年夜小便可以晓得其每一秒的上传速度。从而在页面上及时的更新当前的上传速度了。
关于及时上传速度的呈现
代码下列
// currentLoadedBytesb本次上传的数据总量,
// lastLoadedBytes 上一次上传的数据总量
// oldObjUploadBits旧的上传速度
var currentLoadedBytes,lastLoadedBytes,oldObjUploadBits;
timer = setInterval(
function () {
var bytesCount = currentLoadedBytes - lastLoadedBytes;
if (bytesCount !== 0) {
var speed = ConvertBytesUnit(bytesCount);
$(obj).html("上传速度:" + speed.number + speed.unit + "/s");
} else {
$(obj).html(oldObjUploadBits);
}
oldObjUploadBits = $(obj).html();
lastLoadedBytes = currentLoadedBytes;
}
, 1000)
function ConvertBytesUnit(size){
if (size < 0) size = 0;
var result = {};
if (size > 1024 * 1024) {
result.number = (size / (1024 * 1024)).toFixed(2);
result.unit = "MB";
} else if (size > 1024 ) {
result.number = (size / 1024).toFixed(2);
result.unit = "KB";
} else {
result.number = size.toFixed(2);
result.unit = "B";
}
return (result);
}
颠末过程上面的举动便可以患上到每秒详细的上传速度了。
其余XMLHttpRequest2.0可以实现的效用实在不少,其余还可以实现断点续传,和分片上传等更高级的效用。咱们留不才一篇再来说。www.99889918.com