javascript - 前端如何获取到手机客户端当前的网络状况信息?
黄舟
黄舟 2017-04-11 11:18:48
[JavaScript讨论组]

最近想要对移动端的H5项目进行性能优化,其中一部分工作是优化图片的加载速度,现在我想要根据用户客户端的移动状况给界面加载不同压缩率的图片,但是有没有使用js检测用户客户端网络状况的方法呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
黄舟

自己写一个ajax请求去访问一个接口获得返回时间来判断呗,网络状况貌似只能判断是否连了网。

大家讲道理

微信自带的浏览器的user-agent里面有network字段。你可以挂上代理之后用微信访问任意网页抓包看看

阿神

jquery有个类似ping功能的插件,可以获取响应时间,试试看。

以下代码为转载:

$.ping = function(option) 
{
    var ping, requestTime, responseTime ;
    var getUrl = function(url){    //保证url带http://
        var strReg="^((https|http)?://){1}"
        var re=new RegExp(strReg); 
        return re.test(url)?url:"http://"+url;
    }
    $.ajax({
        url: getUrl(option.url)+'/'+ (new Date()).getTime() + '.html',  //设置一个空的ajax请求
        type: 'GET',
        dataType: 'html',
        timeout: 10000,
        beforeSend : function() 
        {
            if(option.beforePing) option.beforePing();
            requestTime = new Date().getTime();
        },
        complete : function() 
        {
            responseTime = new Date().getTime();
            ping = Math.abs(requestTime - responseTime);
            if(option.afterPing) option.afterPing(ping);
        }
    });

if(option.interval && option.interval > 0)
{
    var interval = option.interval * 1000;
    setTimeout(function(){$.ping(option)}, interval);

// option.interval = 0; // 阻止多重循环
// setInterval(function(){$.ping(option)}, interval);

}

};

相关实例:

<p id="msg"></p>
<script language="javascript" src="jquery.js"></script>
<script language="javascript" src="ping.js"></script>
<script>
$.ping({
url : 'http://www.example.com', 
beforePing : function(){$('#msg').html('')},
afterPing : function(ping){$('#msg').html(ping)}, 
interval : 1
});
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号