检测我手机上的互联网连接类型
detect internet connection type on my mobile
我需要在他们的移动设备上发送视频给我的客户端,但每个客户端以不同的方式连接到互联网,有慢连接,有快,我有2个版本的视频,所以我可以发送小的慢连接和大的快。
setInterval(function(){
if(navigator.onLine){
$("body").html("Connected.");
}else{
$("body").html("Not connected.");
}
},1000);
上面的代码返回是否连接。
问题是:
有办法检测互联网连接类型上我的手机?比如3G、WIFI……等。
您可以编写类似的代码。
var imageAddr = "http://www.tranquilmusic.ca/images/cats/Cat2.JPG" + "?n=" + Math.random();
var startTime, endTime;
var downloadSize = 5616998;
var download = new Image();
download.onload = function () {
endTime = (new Date()).getTime();
showResults();
}
startTime = (new Date()).getTime();
download.src = imageAddr;
function showResults() {
var duration = (endTime - startTime) / 1000; //Math.round()
var bitsLoaded = downloadSize * 8;
var speedBps = (bitsLoaded / duration).toFixed(2);
var speedKbps = (speedBps / 1024).toFixed(2);
var speedMbps = (speedKbps / 1024).toFixed(2);
alert("Your connection speed is: 'n" +
speedBps + " bps'n" +
speedKbps + " kbps'n" +
speedMbps + " Mbps'n" );
}
您可以使用此代码来检测客户端网速。你无法检测到连接类型。一个256+ kb的文件足以检测速度
只有当平台公开了一些特定的API,但它不是暴露给JavaScript的常规浏览器API的一部分时,您才能这样做。所以简短的回答是:不。
另一种方法是向一个已知大小的文件发出请求,看看传输需要多长时间,从中可以推断出连接的速度,但这意味着额外的流量,所以一定要选择好文件(它应该很小,这样就不会产生太多的移动流量,但也不要太小,这样你就不会从下载中获得任何有用的信息)。
不幸的是,这可能不会告诉你太多,因为作为移动设备,客户端可能随时从一个连接切换到另一个完全不同的连接。更重要的是,在完全相同的连接上,从服务器接收数据所需的时间每秒钟都可能有很大的不同,这取决于影响移动客户机的许多因素。因此,如果这是一个视频应用程序,这真的应该由服务器控制,如果服务器看到发送的数据包太少,它应该决定降低视频的质量。有些媒体服务器就是这样做的,比如Red5、Wowza或Adobe media Server。
一种方法是请求文件并查看下载需要多长时间。
如果你的客户使用的是移动设备,那么你的网站每多下载一个字节就会让他们付出代价。此外,有许多因素会影响下载文件所需的时间,"连接类型"只是其中之一。
最初的问题没有区分(A)下载和(B)上传的连接速度(是的,他需要将视频发送给最终用户,但也许这是用户刚刚上传的视频)。可接受的答案对于测量下载速度很有用。
为了提高上传速度,可以考虑在隐藏表单的隐藏表单字段中嵌入base64编码的图像。另外,创建一个隐藏iframe,并将隐藏表单定位到隐藏iframe中。通过javascript提交隐藏表单,将当前时间存储在JS变量中。在结果页面上,当onload触发时,通过javascript在iframe和它的父窗口之间进行通信,发送onload事件触发的时间。比较开始时间和结束时间,然后除以传输的字节数
为了遵守浏览器的同源策略,你需要让iframe中的文档与包含iframe的窗口中的文档处于同一域。
- 当没有互联网连接时,谷歌地图Java脚本API处理
- 如果没有互联网连接,Android WebView离线消息
- 捕获”;没有互联网连接”;AngularJS中
- 我如何通过从服务器调用gif来检查是否有互联网连接
- 如果没有互联网连接,请隐藏iframe
- 如何捕捉不稳定的互联网连接
- 使用jquery检查互联网连接
- 使用 html5 的互联网连接代码
- 如果没有互联网连接,我想显示吐司,不知道该怎么做
- Jquery 移动错误消息,当没有互联网连接加载谷歌地图
- Jquery移动检查时没有互联网连接显示错误消息,而不是加载谷歌地图
- 当互联网连接丢失时,如何从 Ajax 调用中获取信息
- Angular js,如何在调用url之前检查用户是否有互联网连接
- 互联网连接检查不起作用
- 基于英特尔 xdk html5 的应用程序只能在启用互联网连接时工作
- 在javascript中检查互联网连接的最佳实践
- 如何检查移动互联网连接
- 使用 JavaScript 检测互联网连接
- 在JS中检查互联网连接的最快方法
- 在PhoneGap应用程序中检测缓慢的互联网连接