网速前端计算&系统探测
最近做一个web的检测工具,主要探测对单个节点的网速测试,和当前客户端的系统和浏览器,学到了不少东西哈!特地分享下!!
1.计算网速封装的函数,传入ajax起始时间,ajax成功返回时间,数据容量,返回3个网速的参数,最常见的就是kBps,注释写的很清楚了哈,在下面!
/* * 计算网速 * * @paras * ajaxStartTimeStamp ajax开始时间戳 单位(毫秒) 1489475170931 * ajaxEndTimeStamp ajax截止时间戳 单位(毫秒) 1489475171875 * dataSize 数据大小 单位(byte 字节) 525312 比如abc 就是3字节 * * @return * kbps 单位(每秒传送多少个千位) */ function computeNetSpeed(ajaxStartTimeStamp,ajaxEndTimeStamp,dataSize){ // 获取当前时间戳(以s为单位) var startMilSec = ajaxStartTimeStamp var endMilSec = ajaxEndTimeStamp var byte = dataSize //字节 比如abc 就相当于3个字节 var bit = byte*8 //位 var timeDiffSec = (endMilSec - startMilSec)/1000 //秒 var kbps = (bit/timeDiffSec)/1000 //每秒传送多少个千位 var kBps = (byte/timeDiffSec)/1000 //每秒传送多少千字节 var Mbps = (bit/timeDiffSec)/1000/1000 //每秒传送多少兆位 var obj = { kbps: Math.round(kbps),//单位 Kbps 每秒传送多少个千位 kBps: Math.round(kBps),//单位 KBps 每秒传送多少千字节(网络下载中常见的多少KB) Mbps: Number.parseFloat(Mbps.toFixed(2))// 单位 Mbps 每秒传送多少个兆位 } return obj } var res = computeNetSpeed(1489475170931,1489475171875,525312); console.log(res)
2.探测当前系统,根据别的人轮子改的,直接运行就可以了,调用navigator
/* * 探测系统 * * @paras * 无 * * @return * Win10 */ function detectOS() { var userAgent = window.navigator.userAgent; //PC系统 windows if (userAgent.indexOf("Windows NT 5.0") > -1 || userAgent.indexOf("Windows 2000") > -1){ return "Win2000"; } if (userAgent.indexOf("Windows NT 5.1") > -1 || userAgent.indexOf("Windows XP") > -1){ return "WinXP"; } if (userAgent.indexOf("Windows NT 5.2") > -1 || userAgent.indexOf("Windows 2003") > -1){ return "Win2003"; } if (userAgent.indexOf("Windows NT 6.0") > -1 || userAgent.indexOf("Windows Vista") > -1){ return "WinVista"; } if (userAgent.indexOf("Windows NT 6.1") > -1 || userAgent.indexOf("Windows 7") > -1){ return "Win7"; } if (userAgent.indexOf("Windows NT 10.0") > -1 || userAgent.indexOf("Windows 10") > -1){ return "Win10"; } //PC系统 Mac if (userAgent.indexOf("Macintosh") > -1){ return "Mac"; } //移动 ios if (userAgent.indexOf("OS") > -1){ return "IOS"; } //移动 android if (userAgent.indexOf("Android") > -1){ return "Android"; } return "未识别的系统"; }
3.探测浏览器,这个也是别人的轮子改的~~
下一篇:
C语言中“.”与“->”用法比较