网速前端计算&系统探测
最近做一个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语言中“.”与“->”用法比较
