【干货】js简单实现动态网速强度
【【干货】js简单实现动态网速强度】先定一个div用于显示‘弱、中、强’三个强度的图标,这里也可以直接显示文字:
文章图片
在页面加载完成时也就是测速开始时定义一个轮询并保存一下当前时间,用一张不大不小的图片做测速,这里选了个百度的logo图,因为不用担心资源失效。
注意在图片后添加
rd=_" +new Date().getTime()
,否则浏览器会缓存当前图片就不去加载了,影响到测速//测速开始时就执行
var timer =setInterval(function () {
st = new Date();
var img = document.createElement("img");
img.style.width = 0;
img.style.height = 0;
img.style.display = "none";
img.src =
"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1971525978,455276806&fm=26&gp=0.jpg?rd=_" +
new Date().getTime();
img.onload = showspeed;
}, 10000);
window.onbeforeunload = function (){
clearInterval(timer)
}function showspeed() {
var arr = ["弱", "中", "强"];
var filesize = 35.4;
//measured in KB
var et = new Date();
var speed = Math.round(filesize * 1000) / (et - st);
// console.log(speed);
speed > 0 && speed <= 100
? changeSignalIco("week_signal.png", "弱")
: speed > 100 && speed <= 300
? changeSignalIco("general_signal.png", "中")
: speed > 300
? changeSignalIco("strong_signal.png", "强")
: changeSignalIco("strong_signal.png", "强");
}function changeSignalIco(img,title){
$("#signal_ico")[0].src = "https://www.it610.com/images/" + img;
$("#signal_ico")[0].title = title;
}
大概原理就是动态去轮询加载一张隐藏的图片,当图片加载完成时执行showspeed方法进行加载时间和文件大小的计算得出网速,然后根据不同的网速对强度图标进行切换。
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长