xuan52rock

js 检测客户端网速

<!doctype html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>js实现的网速测试方法</title>
</head>
<body>
<script>
function testBW(fn) {
    var startTime, endTime, fileSize;
    var xhr = new XMLHttpRequest();
	xhr.timeout=30000;
	xhr.onerror=function (){
	    console.log(\'onerror\');
	}
    xhr.onreadystatechange =function(){
	   console.log(JSON.stringify(xhr));
        if(xhr.readyState === 2){
            startTime = Date.now();
        }
        if (xhr.readyState === 4) {
            endTime = Date.now();
			console.log(xhr.readyState+\'==\'+xhr.responseText.length);
            fileSize = xhr.responseText.length;
            console.log(fileSize);
            var speed = fileSize  / ((endTime - startTime)/1000) / 1024;
            fn && fn(Math.floor(speed)||0)
			console.log(\'complete\');
        }
		if(xhr.status === 200) {
            endTime = Date.now();
			console.log(xhr.readyState+\'==\'+xhr.responseText.length);
            fileSize = xhr.responseText.length;
            console.log(fileSize);
            var speed = fileSize  / ((endTime - startTime)/1000) / 1024;
            fn && fn(Math.floor(speed)||0)
        }
    }
	//http://wangsu3s.acc5.com/ping.jpg
	//http://alyun3s.acc5.com/ping.jpg
	//http://app-static.acc5.com/app/ping.gif
    xhr.open("GET", "http://app-static.acc5.com/app/ping.gif?rnd=" + Math.random(), true);
    xhr.send();
}

function callback(speed){
    document.write("<div id=\'div1\'>"+speed + " KB/s</div>");
    console.log(speed + " KB/s");  //215 KB/sec
}
testBW(callback);


</script>
</body>
</html>

  

分类:

技术点:

相关文章:

  • 2022-01-18
  • 2022-02-10
  • 2021-11-20
  • 2021-09-29
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-04
  • 2022-12-23
  • 2021-12-31
  • 2021-12-08
  • 2021-10-10
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案