当前位置: 首页 > Web前端 > JavaScript

js简单实现网速强度的实时显示

时间:2023-03-27 16:41:59 JavaScript

首先设置一个div来显示'弱,中,强'三种强度的图标,这里也可以直接显示文字:

定义页面加载时的轮询完成,即测速开始时保存当前时间,用一张不太大也不太小的图片来测速。这里我选择了一张百度标志图片,因为不用担心资源失效。注意在图片后面加上rd=_"+newDate().getTime(),否则浏览器会缓存当前图片,不会加载,影响测速。//开始测速时,执行vartimer=setInterval(function(){st=newDate();varimg=document.createElement("img");img.style.width=0;img.style.height=0;img.style.display="无";img.src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1971525978,455276806&fm=26&gp=0.jpg?rd=_"+newDate().getTime();img.onload=showspeed;},10000);window.onbeforeunload=function(){clearInterval(timer)}functionshowspeed(){vararr=["weak","medium","strong"];varfilesize=35.4;//以KB为单位测量varet=newDate();varspeed=Math.round(filesize*1000)/(et-st);//console.log(speed);speed>0&&speed<=100?changeSignalIco("week_signal.png","Weak"):速度>100&&速度<=300?changeSignalIco("general_signal.png","medium"):速度>300?changeSignalIco("strong_signal.png","strong"):changeSignalIco("strong_signal.png","strong");}函数changeSignalIco(img,title){$("#signal_ico")[0].src="../images/"+img;$("#signal_ico")[0].title=title;}大致原理是动态轮询加载一张隐藏的图片,当图片加载完成后,执行showspeed方法计算加载时间和文件大小,得到网络速度,然后根据不同的网络速度切换强度图标