判断网络环境

  1 <!DOCTYPE html>
  2 <html>
  3 <head lang="en">
  4     <meta charset="UTF-8">
  5     <title></title>
  6 </head>
  7 <body>
  8 
  9 <script>
 10     // get the maximum downlink speed
 11 //    var speed = downlinkmax();
 12 //
 13 //    // check if it is enough for our amazing feature
 14 //    if (speed < sufficient) {
 15 //        disableFeature();
 16 //    }
 17 
 18 //    (function (window, factory) {
 19 //        'use strict';
 20 //        if (typeof define === 'function' && define.amd) {
 21 //            // AMD
 22 //            define([], factory);
 23 //        } else if (typeof exports === 'object') {
 24 //            // Node.js
 25 //            module.exports = factory();
 26 //        } else {
 27 //            // Browser
 28 //            window.downlinkmax = factory();
 29 //        }
 30 //    }(this, function factory() {
 31 //        // public API
 32 //        return $1;
 33 //    }));
 34 
 35 // 方法一
 36     var limitless = Infinity,
 37             nav = navigator,
 38             speed,
 39 
 40             connection = nav.connection || nav.mozConnection || nav.webkitConnection || {
 41                         // 不支持API
 42                         downlinkMax: limitless
 43                     };
 44 
 45     switch (connection.type) {
 46         case 'none':
 47             speed = 0;
 48             break;
 49         case '2g':
 50             speed = 0.134;
 51             break;
 52         case 'bluetooth':
 53         case 'cellular':
 54             speed = 2;
 55             break;
 56         case '3g':
 57             speed = 8.95;
 58             break;
 59         case '4g':
 60             speed = 100;
 61             break;
 62         case 'ethernet':
 63             speed = 550;
 64             break;
 65         case 'wifi':
 66             speed = 600;
 67             break;
 68         // 其他、未知等.
 69         default:
 70             speed = limitless;
 71             break;
 72     }
 73     connection.downlinkMax = speed;
 74     console.log(connection);
 75 
 76 
 77 
 78 
 79 //    var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
 80 //    var type = connection.type;
 81 //    function updateConnectionStatus() {
 82 //        alert("Connection type is change from " + type + " to " + connection.type);
 83 //    }
 84 //    connection.addEventListener('typechange', updateConnectionStatus);
 85 
 86 
 87 
 88 //  方法二
 89     var connection = navigator.connection||navigator.mozConnection||navigator.webkitConnection||{tyep:'unknown'};
 90     var type_text = ['unknown','ethernet','wifi','2g','3g','4g','none'];
 91 
 92     alert(connection.type);
 93     var re_el = document.getElementById("re");
 94     var btn_el = document.getElementById("btn");
 95     function get_status(){
 96         if(typeof(connection.type) == "number"){
 97             connection.type_text = type_text[connection.type];
 98         }else{
 99             connection.type_text = connection.type;
100         }
101         if(typeof(connection.bandwidth) == "number"){
102             if(connection.bandwidth > 10){
103                 connection.type = 'wifi';
104             }else if(connection.bandwidth > 2){
105                 connection.type = '3g';
106             }else if(connection.bandwidth > 0){
107                 connection.type = '2g';
108             }else if(connection.bandwidth == 0){
109                 connection.type = 'none';
110             }else{
111                 connection.type = 'unknown';
112             }
113         }
114         var html = 'Type : '+connection.type_text;
115         html += '<br>Bandwidth : '+connection.bandwidth;
116         html += '<br>isOnline : '+navigator.onLine;
117         re_el.innerHTML = html;
118     }
119 
120     btn_el.onclick = function(){
121         re_el.innerHTML = 'Waiting...';
122         get_status();
123     }
124 
125 
126 
127 
128     // get the maximum downlink speed
129 //    speed = downlinkmax()
130 
131     // check if it is enough for our amazing feature
132 //    disableFeature() if speed < sufficient
133 </script>
134 
135 </body>
136 </html>

 

上一篇:判断是电脑的就显示一个禁止访问的页面


下一篇:BOM