精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HTML5:Network Information API詳解

譯文
開發 前端
頁設計領域討論最熱烈的概念之一就是,響應式網頁設計。響應式網頁設計方面的文章已有成千上萬,因此我在本文中不準備討論。不過,響應式網頁設計有一個重大局限。那就是響應式網頁設計在很大程度上取決于瀏覽器視口(viewport)的大小。

網頁設計領域討論最熱烈的概念之一就是,響應式網頁設計。響應式網頁設計方面的文章已有成千上萬,因此我在本文中不準備討論。不過,響應式網頁設計有一個重大局限。那就是響應式網頁設計在很大程度上取決于瀏覽器視口(viewport)的大小。

雖然這種方法很適合呈現大小和分辨率合適的圖片,但它并非在所有情況下都很理想,視頻內容就是一個例子。在這種情況下,我們其實需要關于設備網絡連接的更多信息。

設想一下:你在智能手機或平板電腦上訪問YouTube。你人在家里,通過無線網絡連接上去。這種情況下,你并不關心所下載的字節數,只關注高質量視頻內容。如果你通過慢速移動連接來上網,則不然。這種情況下,你希望看到視頻,質量才是其次的。

我要明確一點,想要所設計的網站確實很好的每個開發人員仍需要加以優化,以便網頁裝入盡可能快速。不過在上面這個例子中,呈現高分辨率視頻并不是浪費用戶的帶寬,而是改進用戶體驗。

而Network Information API正是我們為了解關于設備網絡連接的更多信息所需要的工具。

1. Network Information API是什么東東?

Network Information API讓開發人員得以訪問系統與網絡(蜂窩網絡、無線網絡和藍牙網絡等)進行通信所使用的連接類型。要是連接類型有變化,它還提供了通知腳本的一種手段。這讓開發人員得以對文檔對象模型(DOM)進行動態改變,及/或通知用戶網絡連接類型已有變化。

Network Information API規范的***個版本于2011年發布,但API此后已改變了幾次。***版本只是編輯草案而已,這意味著它在將來勢必還會有變化。

盡管屢屢變化,但該API的使用場合令人關注,確實值得加以探討。我們在本文中將探討這項規范的***版本,但我們還關注一些棄用的屬性和事件,原因會在后面予以解釋。

2. 實現

***版本的Network Information API公開了屬于window.navigator對象的connection對象。connection對象含有一種屬性:type,它返回了用戶代理的連接類型。type屬性可能有下面其中一個值:

  • bluetooth
  • cellular
  • ethernet
  • none
  • wifi
  • other
  • unknown

其中一些值(比如bluetooth和wifi)不需要加以說明,而另一些值則需要一點說明。cellular類型是指移動連接,比如EDGE、3G和4G等。other類型意味著,當前的連接類型不是unknown,但它也不是其他任何類型。unknown類型意味著,用戶代理已建立了網絡連接,但它無法確定連接類型是哪一種。

除了type外,Network Information API還公開了ontypechange事件。每當網絡連接的類型有變化,就會觸發該事件。

開發人員可以使用Network Information API,根據當前連接類型,改變一些特性。比如說,如果我們檢測到設備在使用移動連接,就可以減慢耗用大量帶寬的某個進程。該API還讓我們可以將某個特定的類分配給html元素,比如high-bandwidth,就像Modernizr那樣。我們可以充分利用CSS,改變元素的一個或多個屬性,比如背景圖片。

我們已知道了Network Information API的功用、誰能從中受益,現在不妨看看哪些瀏覽器支持該API。

3. 瀏覽器支持

截至本文撰稿時,Network Information API只受到火狐瀏覽器(使用廠商前綴)和Chrome Canary這兩種瀏覽器的支持。在Chrome Canary中,我們不得不啟用experimental web platform features(試驗性Web平臺特性)標記,才能使用該API。你可以在Paul Irish撰寫的這篇文章(https://plus.google.com/+PaulIrish/posts/Tio3suW88cu)中找到更多的信息。

好像嫌對Network Information API的支持還不夠糟,***版本:火狐版本30支持舊的API規范。正由于如此,又萬一你想要馬上試用Network Information API,有必要看一下這個API的之前規范所公開的屬性和事件。

舊規范公開了兩種屬性:bandwidth和metered。bandwidth屬性是double屬性,以每秒兆字節(MB/s)為單位,估計當前的帶寬。metered屬性是布爾型,它指明了設備的網絡連接是不是受到任何局限。之前的規范還定義了onchange事件,將上述屬性的變化告知任何偵聽者。

為了讓你了解這個規范的新舊版本,我們在下面將制作一個使用新舊版本的演示版。

4. 演示

到目前為止,我們已探討了API的使用場合以及API公開的屬性和事件。在這個章節,我們將創建一個簡單的網頁,看看API的實際使用。

該演示版包括HTML5網頁,網頁上有一個無序列表,上面有三個列表項。每一項都含有文本片段,以證實Network Information API新舊規范公開的屬性的值。列表項在默認情況下隱藏起來,只有相應的屬性得到支持,才會顯示。

演示版還檢測瀏覽器是否實現了API的舊規范、瀏覽器是否到底支持Network Information API。在***種情況下,你會看到消息Old API version supported(舊API版本得到支持),在第二種情況下,會顯示消息API not supported(API不得到支持)。

測試對Network Information API的支持很簡單,如下所示:

  1. // Deal with vendor prefixes   
  2. var connection = window.navigator.connection    ||   
  3.                  window.navigator.mozConnection ||   
  4.                  nullif (connection === null) {   
  5.    // API not supported :( } else {   
  6.    // API supported! Let's start the fun :) } 

想檢測實現的版本是不是舊規范,我們可以測試是否存在metered屬性,如下所示:

 

  1. if ('metered' in connection) {   
  2.    // Old version } else {   
  3.    // New version } 

 

 

一旦我們測試了對Network Information API的支持,而且弄清楚了瀏覽器支持該規范的哪個版本,就可以為相應的事件添加處理程序。在處理程序里面,我們可以更新相應列表項的文本,比如新API規范的type。

你可以在下面找到演示版的完整代碼;如果你喜歡,也可以試著改動一下。

  1. <!DOCTYPE html>   
  2. <html>   
  3.    <head>   
  4.       <meta charset="UTF-8">   
  5.       <meta name="viewport" content="width=device-width, initial-scale=1.0"/>   
  6.       <meta name="author" content="Aurelio De Rosa">   
  7.       <title>Network Information API Demo by Aurelio De Rosa</title>   
  8.       <style>   
  9.          *   
  10.          {   
  11.             -webkit-box-sizing: border-box;   
  12.             -moz-box-sizing: border-box;   
  13.             box-sizing: border-box;   
  14.          }   
  15.     
  16.          body   
  17.          {   
  18.             max-width: 500px;   
  19.             margin: 2em auto;   
  20.             padding: 0 0.5em;   
  21.             font-size: 20px;   
  22.          }   
  23.     
  24.          h1   
  25.          {   
  26.             text-align: center;   
  27.          }   
  28.     
  29.          .api-support   
  30.          {   
  31.             display: block;   
  32.          }   
  33.     
  34.          .hidden   
  35.          {   
  36.             display: none;   
  37.          }   
  38.     
  39.          .value   
  40.          {   
  41.             font-weight: bold;   
  42.          }   
  43.     
  44.          .author   
  45.          {   
  46.             display: block;   
  47.             margin-top: 1em;   
  48.          }   
  49.       </style>   
  50.    </head>   
  51.    <body>   
  52.       <h1>Network Information API</h1>   
  53.     
  54.       <span id="ni-unsupported" class="api-support hidden">API not supported</span>   
  55.       <span id="nio-supported" class="api-support hidden">Old API version supported</span>   
  56.     
  57.       <ul>   
  58.          <li class="new-api hidden">   
  59.             The connection type is <span id="t-value" class="value">undefined</span>.   
  60.          </li>   
  61.          <li class="old-api hidden">   
  62.             The connection bandwidth is <span id="b-value" class="value">undefined</span>.   
  63.          </li>   
  64.          <li class="old-api hidden">   
  65.             The connection is <span id="m-value" class="value">undefined</span>.   
  66.          </li>   
  67.       </ul>   
  68.     
  69.       <small class="author">   
  70.          Demo created by <a href="http://www.audero.it">Aurelio De Rosa</a>   
  71.          (<a href="https://twitter.com/AurelioDeRosa">@AurelioDeRosa</a>).<br />   
  72.          This demo is part of the <a href="https://github.com/AurelioDeRosa/HTML***PI-demos">HTML5 API demos repository</a>.   
  73.       </small>   
  74.     
  75.       <script>   
  76.          var connection = window.navigator.connection    ||   
  77.                           window.navigator.mozConnection ||   
  78.                           null;   
  79.          if (connection === null) {   
  80.             document.getElementById('ni-unsupported').classList.remove('hidden');   
  81.          } else if ('metered' in connection) {   
  82.             document.getElementById('nio-supported').classList.remove('hidden');   
  83.             [].slice.call(document.getElementsByClassName('old-api')).forEach(function(element) {   
  84.                element.classList.remove('hidden');   
  85.             });   
  86.     
  87.             var bandwidthValue = document.getElementById('b-value');   
  88.             var meteredValue = document.getElementById('m-value');   
  89.     
  90.             connection.addEventListener('change', function (event) {   
  91.                bandwidthValue.innerHTML = connection.bandwidth;   
  92.                meteredValue.innerHTML = (connection.metered ? '' : 'not ') + 'metered';   
  93.             });   
  94.             connection.dispatchEvent(new Event('change'));   
  95.          } else {   
  96.             var typeValue = document.getElementById('t-value');   
  97.             [].slice.call(document.getElementsByClassName('new-api')).forEach(function(element) {   
  98.                element.classList.remove('hidden');   
  99.             });   
  100.     
  101.             connection.addEventListener('typechange', function (event) {   
  102.                typeValue.innerHTML = connection.type;   
  103.             });   
  104.             connection.dispatchEvent(new Event('typechange'));   
  105.          }   
  106.       </script>   
  107.    </body>   
  108. </html> 

結束語

本文為大家介紹了Network Information API。在文章的***個部分,我們探討了何謂API、它能為我們做什么。我們還了解了Network Information API公開的屬性和事件。正如我在“瀏覽器支持”這部分中提到的,API目前未得到大力支持,不過這一方面歸因于API的規范數次變化。

Network Information API用起來很簡單;一旦它得到更多瀏覽器的支持,也沒有理由不充分利用它提供的信息。你對該API有何看法?它得到更多瀏覽器的支持后,你會用它嗎?

 

英文:http://code.tutsplus.com/tutorials/html5-network-information-api--cms-21598

責任編輯:林師授 來源: 51CTO
相關推薦

2013-01-18 10:59:44

IBMdW

2017-08-09 15:57:11

JavaScriptHtml5音頻

2019-05-29 19:00:35

HTML5存儲方式前端

2017-10-23 16:27:11

HTML5桌面Notificatio

2012-04-12 11:11:15

HTML5APIWEB

2009-10-29 09:53:02

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2011-05-13 17:36:05

HTML

2013-10-21 15:24:49

html5游戲

2015-10-27 10:22:47

Html5API調用

2013-01-04 13:39:51

2012-11-05 10:34:52

IBMdw

2017-01-03 18:09:33

HTML5本地存儲Web

2011-05-12 15:42:16

HTML5

2011-01-14 17:53:33

HTML5cssweb

2011-05-13 17:41:40

2023-03-16 09:00:00

HTML5HTML語言

2011-07-14 09:16:10

HTML 5

2013-03-22 08:59:57

HTML5移動應用Web App

2014-03-20 10:50:44

HTML5 定位技術
點贊
收藏

51CTO技術棧公眾號

欧美性xxxxx极品少妇| 久久久国产精品麻豆| 欧美精品在线第一页| 一级全黄裸体片| 偷拍自拍在线看| 国产精品污www在线观看| 91免费版黄色| 亚洲va在线观看| 99久久这里只有精品| 亚洲成avwww人| 日韩手机在线观看视频| 免费日本一区二区三区视频| 国产91在线|亚洲| 欧洲日本亚洲国产区| 成人免费视频网站入口::| 精品国产导航| 欧美军同video69gay| 阿v天堂2017| a级影片在线观看| 久久一区二区三区四区| 92看片淫黄大片欧美看国产片| 日韩av一区二区在线播放| 欧美一区2区| 亚洲国产精品热久久| 人人爽人人爽av| 欧美一区久久久| 亚洲尤物视频在线| 久久免费看毛片| 免费国产在线视频| 成人动漫一区二区在线| 成人亚洲综合色就1024| 国产成人无码专区| 亚洲久久在线| 欧美大片欧美激情性色a∨久久| 四季av中文字幕| 亚洲肉体裸体xxxx137| 精品欧美久久久| 一级淫片在线观看| 欧美一级在线| 欧美亚洲一区二区在线| 免费在线激情视频| 国产美女精品写真福利视频| 亚洲综合丝袜美腿| 喜爱夜蒲2在线| 很黄的网站在线观看| 中文字幕不卡在线| 欧美一区2区三区4区公司二百| 黄色av一区二区三区| 国产乱码字幕精品高清av| 国产精品日日摸夜夜添夜夜av| 天堂中文字幕在线观看| 亚洲精品乱码| 国内精品一区二区三区| 久久精品99国产精| 欧美性久久久| 欧美俄罗斯乱妇| 久草网在线观看| 欧美在线首页| 欧美人成在线视频| 欧美三级小视频| 欧美 日韩 国产 一区| 欧美成人免费va影院高清| 69xx绿帽三人行| 欧美一区91| 中文字幕国产精品| 激情高潮到大叫狂喷水| 91精品啪在线观看国产18| 日韩亚洲精品视频| 永久久久久久久| 欧美精品导航| 久久免费视频这里只有精品| 日韩欧美a级片| 久久看片网站| 国产一区二区在线播放| 国产女同91疯狂高潮互磨| 国产福利91精品一区二区三区| 成人黄动漫网站免费| 高清乱码毛片入口| 91麻豆国产福利在线观看| 欧美一区1区三区3区公司| 欧美极品视频| 亚洲色图视频免费播放| 国产一区二区三区乱码| 欧美私密网站| 欧美这里有精品| 亚洲精品在线视频播放| 一区二区在线视频观看| 亚洲人成免费电影| 一区二区三区影视| 国产亚洲毛片| 成人激情视频在线| 天堂av手机版| 国产精品国产成人国产三级| 日韩一区二区高清视频| 久久uomeier| 日韩欧美一区二区在线视频| 特级西西人体wwwww| 伊人久久大香线蕉综合网站| 中文字幕日韩在线视频| 久久久久久久国产视频| 日韩电影免费一区| 国产欧美日韩一区二区三区| 阿v免费在线观看| 午夜欧美大尺度福利影院在线看| 男女污污的视频| 在线日韩成人| 国产一区二区三区18| 久久国产精品波多野结衣| 日韩精品电影在线| 国产精品免费一区二区三区在线观看| 黄色在线网站| 亚洲成av人综合在线观看| 黄色一级二级三级| 97se亚洲| 日韩一区在线视频| 你懂的国产在线| 国产sm精品调教视频网站| 三区精品视频| 国产传媒在线观看| 欧美一区二区三区爱爱| 我想看黄色大片| 亚洲二区视频| 99国产在线观看| 一级毛片视频在线| 色哟哟一区二区在线观看| 不卡的一区二区| 欧美成人自拍| 日韩免费高清在线观看| 黄色一级大片在线免费看国产一 | 婷婷久久综合九色综合绿巨人| 波多野结衣xxxx| 欧美日韩123| 91国产高清在线| 不卡av中文字幕| 中文字幕一区不卡| 久久婷婷综合色| 九一亚洲精品| 91精品国产91久久久久福利| 黄色www视频| 一区二区欧美国产| 超碰91在线播放| 国产电影一区二区在线观看| 国产精品久久久久久搜索| 日本一区高清| 欧美日韩美女在线观看| 欧美大喷水吹潮合集在线观看| 中文字幕一区二区三区在线视频 | 一级毛片精品毛片| 久久成人这里只有精品| 国产三级在线观看视频| 18欧美乱大交hd1984| www.cao超碰| 99久久婷婷这里只有精品| 国产精品一区二区三区免费视频 | 瑟瑟视频在线免费观看| 久久精品一区二区三区四区| 日日碰狠狠丁香久燥| 欧美极品在线观看| 国产成人av在线播放| 黄色av网址在线免费观看| 疯狂欧美牲乱大交777| 一起草在线视频| 香蕉久久夜色精品| 欧美一区二区三区成人久久片| 日本电影欧美片| 一区国产精品视频| 亚洲视频在线免费播放| 自拍偷拍亚洲综合| 成人做爰69片免费| 国产精品试看| 日韩高清三级| 麻豆久久久久| 久久999免费视频| 国产 日韩 欧美 精品| 欧美视频13p| 一级黄色片网址| 韩国三级电影一区二区| 亚洲爆乳无码精品aaa片蜜桃| japanese色系久久精品| 91精品国产91久久久久久最新| 精品福利视频导航大全| 欧美日韩一本到| 国产大片中文字幕| 国产视频一区不卡| 91 视频免费观看| 99亚洲伊人久久精品影院红桃| 欧美日韩成人一区二区三区| 成人在线高清| 久久久久久久爱| 第一视频专区在线| 日韩一区二区三区视频| 国产超碰人人爽人人做人人爱| 欧美激情自拍偷拍| 动漫av在线免费观看| 国产精品亚洲欧美| 一区二区不卡视频| 国产欧美一区二区三区米奇| 国产精品9999| 欧美14一18处毛片| 在线精品91av| 黄色片一区二区三区| 欧美三级电影网| 国产真实夫妇交换视频| 欧美国产一区二区| 香蕉视频免费网站| 老司机免费视频一区二区| 日韩五码在线观看| 希岛爱理一区二区三区| 国精产品一区二区| 国产一区二区高清在线| 青草成人免费视频| 毛片在线导航| 中文日韩电影网站| 特黄aaaaaaaaa真人毛片| 7777精品伊人久久久大香线蕉最新版| 成人精品在线看| 亚洲最新视频在线观看| 亚洲色图欧美色| 99精品1区2区| 爱情岛论坛亚洲自拍| 日韩电影在线一区二区三区| 水蜜桃色314在线观看| 中文字幕一区二区三区欧美日韩 | 好吊操视频这里只有精品| 琪琪一区二区三区| 波多野结衣家庭教师视频| 国产精品va| 天堂av免费看| 久久福利影院| 色就是色欧美| 在线看成人短视频| 精品日韩欧美| 超碰精品在线| 国产精品日韩一区二区三区| 国产亚洲久久| 91在线观看免费网站| 久久亚洲精品中文字幕| 国产精品视频中文字幕91| 欧美电影免费观看高清完整| 国内精品久久久久影院 日本资源| 在线观看三级视频| 久久躁狠狠躁夜夜爽| 日本电影在线观看网站| 在线播放国产精品| 国产免费a∨片在线观看不卡| 亚洲欧洲高清在线| 欧美日韩国产综合视频| 亚洲人成网站999久久久综合| 性感美女福利视频| 日韩成人av网址| 亚洲欧美日韩综合在线| 日韩风俗一区 二区| 亚洲av成人精品一区二区三区在线播放 | 国产精品日本一区二区不卡视频| 国产欧美日韩中文字幕在线| 韩国理伦片久久电影网| 国产精品欧美激情| 国产精品xxx| 91久久久在线| 日韩亚洲精品在线观看| 国产精品v欧美精品v日韩精品 | 欧美亚洲另类在线一区二区三区| 欧美色图婷婷| 欧美亚洲国产免费| 999精品在线| 一本色道久久88亚洲精品综合| 欧美激情自拍| 男人日女人逼逼| 久久一区亚洲| 最新天堂在线视频| 福利电影一区二区| 9.1成人看片| 国产精品萝li| 亚洲欧美一区二区三区四区五区| 亚洲一区二区偷拍精品| 在线观看亚洲欧美| 欧美中文字幕亚洲一区二区va在线| 中文字幕乱码一区二区| 日韩美一区二区三区| 深爱激情五月婷婷| 在线不卡国产精品| 婷婷在线播放| 欧美影院在线播放| 四虎国产精品免费久久5151| 亚洲一区二区三区毛片| 欧美大胆a级| 亚洲二区三区四区| 欧美日韩精品| av网址在线观看免费| 国精产品一区一区三区mba桃花 | 中国丰满人妻videoshd| 免费看欧美女人艹b| 国产老头和老头xxxx×| 久久网站最新地址| 永久久久久久久| 色拍拍在线精品视频8848| 国产农村老头老太视频| 精品偷拍各种wc美女嘘嘘| 成人在线影视| 欧美在线一级va免费观看| 亚洲视频自拍| 欧美精品久久| 国产精品a级| 成人av毛片在线观看| 97se狠狠狠综合亚洲狠狠| 手机av在线看| 91高清视频在线| 亚洲产国偷v产偷v自拍涩爱| 在线亚洲男人天堂| 欧美aa免费在线| 91超碰在线免费观看| 日韩精品一区二区三区免费观看| 日韩日韩日韩日韩日韩| 久久66热re国产| 日本高清www| 五月婷婷色综合| 精品国精品国产自在久不卡| 中文字幕日韩免费视频| 国产传媒在线| 国产精品久久精品视| 久久一区二区中文字幕| 久久久久人妻精品一区三寸| 懂色av噜噜一区二区三区av| 国产aaaaaaaaa| 一本高清dvd不卡在线观看| 亚洲精品视频网| 久久国产加勒比精品无码| 高清在线一区| 日韩高清av电影| 久久国产精品亚洲77777| 蜜臀aⅴ国产精品久久久国产老师 性活交片大全免费看 | 日韩欧美中文字幕在线播放| 亚洲精品网站在线| 欧美日本高清一区| 久久的色偷偷| 麻豆md0077饥渴少妇| 另类调教123区| 国产一二三四视频| 欧美日韩性生活| 第三区美女视频在线| 秋霞午夜一区二区| 日韩mv欧美mv国产网站| 欧美在线一区视频| 成人免费av网站| 国产一级在线免费观看| 精品捆绑美女sm三区| 色屁屁www国产馆在线观看| 亚洲v日韩v综合v精品v| 四季av一区二区凹凸精品| 三级视频中文字幕| 国产精品麻豆视频| 97人妻精品一区二区三区软件 | 国产精品av久久久久久无| 日韩欧美精品中文字幕| 男女视频在线观看| 国产精品91久久久| 欧美电影一区| 中文字幕在线视频一区二区| 亚洲精品视频一区二区| 精品国产无码AV| 久久久久久网站| 丝袜av一区| 国产免费999| 中文字幕日本不卡| 精品人妻无码一区二区三区蜜桃一 | 色诱亚洲精品久久久久久| 免费在线毛片| 国产精品视频xxx| 中文字幕一区二区三区久久网站| 精品伦一区二区三区| 午夜日韩在线电影| 国产在线视频网| 成人免费淫片aa视频免费| 中文字幕人成人乱码| 日韩成人av一区二区| 在线观看视频一区二区欧美日韩| 日韩美女网站| 丁香五月网久久综合| 亚洲欧美日韩国产一区二区| 白白色免费视频| 欧美一激情一区二区三区| 91破解版在线观看| 欧美日韩亚洲一区二区三区在线观看 | 国产欧美一区二区三区网站| 在线观看中文字幕2021| 精品自拍视频在线观看| 天天操综合520| 天天摸天天舔天天操| 亚洲成人1区2区| 3p视频在线观看| 国产一区二区三区av在线| 日韩成人一区二区| 美女视频黄免费| 亚洲午夜精品久久久久久性色 | 亚洲成人aaa| 国产亚洲精彩久久| 97视频在线免费| 国产精品不卡在线| 香蕉视频成人在线| 91精品国产91久久久久青草|