日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
HTML5:NetworkInformationAPI詳解

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

公司主營業(yè)務:成都網(wǎng)站建設、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出曲周免費做網(wǎng)站回饋大家。

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

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

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

而Network Information API正是我們?yōu)榱私怅P于設備網(wǎng)絡連接的更多信息所需要的工具。

1. Network Information API是什么東東?

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

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

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

2. 實現(xiàn)

***版本的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類型意味著,用戶代理已建立了網(wǎng)絡連接,但它無法確定連接類型是哪一種。

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

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

我們已知道了Network Information API的功用、誰能從中受益,現(xiàn)在不妨看看哪些瀏覽器支持該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規(guī)范。正由于如此,又萬一你想要馬上試用Network Information API,有必要看一下這個API的之前規(guī)范所公開的屬性和事件。

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

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

4. 演示

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

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

演示版還檢測瀏覽器是否實現(xiàn)了API的舊規(guī)范、瀏覽器是否到底支持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.                  null; if (connection === null) {   
  5.    // API not supported :( } else {   
  6.    // API supported! Let's start the fun :) } 

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

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

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

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

 
 
  1.    
  2.    
  3.       
  4.          
  5.          
  6.          
  7.       Network Information API Demo by Aurelio De Rosa   
  8.          
  9.       
  10.       
  11.       

    Network Information API

       
  12.     
  13.       API not supported   
  14.       Old API version supported   
  15.     
  16.       
         
    •             
    •             The connection type is undefined.   
    •          
    •    
    •             
    •             The connection bandwidth is undefined.   
    •          
    •    
    •             
    •             The connection is undefined.   
    •          
    •    
    •       
       
  17.     
  18.          
  19.          Demo created by Aurelio De Rosa   
  20.          (@AurelioDeRosa).   
  21.          This demo is part of the HTML5 API demos repository.   
  22.          
  23.     
  24.          
  25.       
  26.  

結束語

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

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

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


本文題目:HTML5:NetworkInformationAPI詳解
當前網(wǎng)址:http://www.dlmjj.cn/article/cdpccie.html