成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高性能移動web開發技巧

移動開發
移動設備不僅僅只是屏幕大小比較特殊! 內容傳輸與處理也比通常情況來得慢,所以要開始重視這個問題。這是一個甜蜜而又痛苦的事實: 移動設備連接速度與處理能力都比較弱,但是還是可以通過一些可用的很棒的HTML5/CSS3特性來彌補這些不足。

移動終端面臨的主要問題:

  • 網絡數據傳輸延遲(即便是3G網絡)
  • CPU運算能力(即便是配有1GHz+的設備)

移動終端可以做的優化:

  • 根據設備屏幕來選擇加載資源
  • 降低延遲,加快連接速度
  • 提高處理性能

本文介紹了一些針對移動設備優化技術,特別針對智能移動設備(iOS,Android,WP)。

針對屏幕來優化圖片

移動設備有不同屏幕尺寸,分辨率,應當有針對性加載不同的圖片內容。

如果你正在開發一個只有一套帶有很多圖形樣式的站點,那就意味著無論用戶用何種大小設備都會下載這些巨大的圖片。 為什么一定要讓移動用戶下載這些為桌面用戶開發的樣式圖片呢?

不過不用擔心,現代很多設備都支持 CSS media queries(媒體選擇器)了, 通過media queries 我們可以方便的針對不同設備屏幕特性來加載不同版本的樣式圖片。

  1. /* Screens bigger than 480px */ 
  2. @media only screen and (min-device-width481px) { 
  3. #header { background-imageurl(header-full.png); } 
  4.  
  5. /* Screens smaller than 480px */ 
  6. @media only screen and (max-device-width480px) { 
  7. #header { background-imageurl(header-small.png); } 

以上css代碼中header-full.jpg 會被自動應用在大屏幕設備里, 另外一個優化過的小圖片(header-small.jpg)則會應用到一些小屏幕上。

另外對于一些高顯示密度的設備(如 iPhone4:326PPI),如果使用低于100dpi(dots per inch)分辨率圖片,顯示效果會不那么理想(fuzzy)! 或許可以以犧牲一點點性能的代價換一張高分辨率圖片來彌補這個問題。

可以通過media queries 點密度條件判斷 來加載不同方案:

  1. /* High dpi */ 
  2. @media only screen and (min-resolution: 300dpi), 
  3.   only screen and (-webkit-min-device-pixel-ratio: 1.5), 
  4.   only screen and (min--moz-device-pixel-ratio: 1.5) { 
  5. #header { background-imageurl(header-300dpi.png); } 
  6.  
  7. /* Low dpi */ 
  8. @media only screen and (max-resolution: 299dpi), 
  9.   only screen and (-webkit-max-device-pixel-ratio: 1.5), 
  10.   only screen and (max--moz-device-pixel-ratio: 1.5) { 
  11. #header { background-imageurl(header-72dpi.png); } 

你知道嗎? 還可以通過 javascript 訪問 window.devicepixelratio對象來獲取屏幕的分辨率。

針對不同網絡類型

Android 2.2 最近引入了一個 navigator.connection對象, 開發者可以通過這個對象獲取當前設備的網絡接入類型。這樣就可以通過這個判斷來充分利用連接資源。從而針對高速的網絡提高一些更加優質的內容。

這是一個接入方式為3G的設備中 navigator.connection 對象包含的鍵值:

  1. navigator = { 
  2.   connection: { 
  3.     "type""4"
  4.     "UNKNOWN""0"
  5.     "ETHERNET""1"
  6.     "WIFI""2"
  7.     "CELL_2G""3"
  8.     "CELL_3G""4" 
  9.   } 
  10. }; 

通過這些簡單的代碼我們就能檢測網絡類型,然后為HTML元素添加不同的CSS class。

  1. // Initialize variables 
  2. var connection, connectionSpeed, htmlNode, htmlClass; 
  3.  
  4. // Create a custom object fallback if navigator.connection isn't available 
  5. connection = navigator.connection || {'type':'0'}; 
  6.  
  7. // Set connectionSpeed 
  8. switch(connection.type) { 
  9. case connection.CELL_3G: 
  10.   // 3G 
  11.   connectionSpeed = 'mediumbandwidth'
  12. break
  13. case connection.CELL_2G: 
  14.   // 2G 
  15.   connectionSpeed = 'lowbandwidth'
  16. break
  17. default
  18.   // WIFI, ETHERNET, UNKNOWN 
  19.   connectionSpeed = 'highbandwidth'

這樣我們就能為不同網絡類型提供優化過的CSS:

  1. .highbandwidth .logo   { background-image:url('logo-high.jpg'); } 
  2. .mediumbandwidth .logo { background-image:url('logo-medium.jpg'); } 
  3. .lowbandwidth .logo    { background-image:url('logo-low.jpg'); } 

減少 HTTP請求

這是個老話題了,主要是通過 減少服務器傳輸損耗(roundtrips /round trip time ) 來加速站點。這點在移動網絡尤為明顯。你可能已經知道以下幾點技巧:

  • 使用CSS3來替代一些圖片效果(border-radius,text-shadow,background linear、radia gradients,box-reflect)
  • 在CSS和HTML里使用base64編碼圖像
  • 避免重定向(很不幸這個在移動設備很常見,比如用iPhone訪問yahoo.com會重定向到 m.yahoo.com)
  • 緩存ajax數據

這里有一些你可能聽過的新技巧:

  • 用Emoji pictograms 替代圖片(查看列表)(iOS 2.2+, other Japanese phones)
  • 把通用的CSS和JS放到外聯文件里(剛開始會增加請求,緩存后就可以顯著減少請求了)
  • 用localStorage替代cookie(每次HTTP請求cookie都會變成而外加載的數據)
  • 用HTML5緩存(cache manifest and client-side databases)來替代傳統緩存,可以查看下擴展閱讀里關于移動設備緩存的研究

減少javascript定時器動畫

JS動畫相對比較 過時(old-school), 新一些的瀏覽器都開始支持CSS3變換還有動畫,像iOS還有一些桌面瀏覽器都支持硬件加速。

你或許會想知道怎么通過JS來介入這些新動畫特性。 其實已經有一些新的核心事件可以使用了:

  • onwebkittransitionend (ontransitionend for Firefox, onotransitionend for Opera)
  • onwebkitanimationstart
  • onwebkitanimationiteration
  • onwebkitanimationend

對于不支持CSS3動畫的瀏覽器,可以考慮降級使用JS動畫(在一些性能較弱的設備會表現不夠流暢)。因此在測試設備時,應該盡量不要使用模擬器。 因為性能方面的測試很難模擬。

localStorage 和 sessionStorage

localStorage 和 sessionStorage 可以看成javascript對象。sessionStorage的數據會在頁面關閉時清空,localStorage則可以長時間存儲數據不會因為瀏覽器關閉而自動刪除數據。

但是有一點要注意的:

這兩個對象雖然很像常規的JS對象,但是有個缺點是只能存儲字符串。所以如果你用他保存對象,可能它記錄下來的會是”[object Object]“。 悲催吧,不過可以通過 JSON.stringify() and JSON.parse() 來輔助存儲:

  1. var user = { 
  2.   firstName: 'Joe'
  3.   lastName: 'Schmoe'
  4.   age: 40 
  5.  
  6. // Store the object 
  7. localStorage.userInfo = JSON.stringify(user); 
  8.  
  9. // Retrieve the object 
  10. var user = JSON.parse(localStorage.userInfo); 

不同瀏覽器為(localStorage/sessionStorage)提供的存儲空間可能會不一樣。但是5Mb貌似是一個公認的最小值。

其他javascript技巧

這邊還有點小技巧可以優化移動端的javascript。 但并不完整! 顯然還有更多的技術有待發現。但是這些將讓你有個好的開始。

  • 減少表單驗證中javascript的使用,取而代之利用HTML5的表單驗證功能,如果支持的話:input autofocus attribute,input placeholder text,new form validation (還未完成)
  • 減少初始延遲:即使你用的是WIFI,但是性能不佳的設備仍舊會花很多時間來解析腳本!你可以先加載JS再后解析: loading the JS in a comment block and eval’ing later (一個聰明的方法,來自Gmail Mobile team)
  • 利用新客戶端數據庫技術(indexedDB已經開始成為受歡迎的標準),但是iOS4.2與Android2.2還未實現支持
  • geolocation:保存或緩存用戶最后記錄的位置
  • 利用WebSokects(目前只有iOS4.2+支持 )

結論

要記住移動設備不僅僅只是屏幕大小比較特殊! 內容傳輸與處理也比通常情況來得慢,所以要開始重視這個問題。

這是一個甜蜜而又痛苦的事實: 移動設備連接速度與處理能力都比較弱,但是還是可以通過一些可用的很棒的HTML5/CSS3特性來彌補這些不足。

擴展閱讀:

責任編輯:徐川 來源: net
相關推薦

2013-08-16 14:43:14

高性能移動Web移動Web站點移動Web

2013-09-10 17:13:57

移動網站性能優化移動web

2011-06-14 09:27:43

高性能WEB開發

2011-04-18 10:16:30

WEB高性能

2011-04-07 13:53:25

Web工具

2011-04-19 11:06:03

JavaScriptweb

2011-10-18 13:58:32

高性能web

2011-04-07 13:39:24

WebHTTP

2011-04-21 09:59:48

WEBjavascript

2011-04-27 10:57:29

高性能web開發

2016-08-23 14:37:21

2009-07-30 10:28:56

Web高性能開發

2011-04-22 09:54:37

CSSjavascript

2016-11-28 09:19:27

2013-06-19 09:20:53

Web開發Web性能優化高性能

2011-04-28 09:40:26

flush高性能Web開發

2011-04-25 10:11:57

高性能web開發

2014-03-19 14:34:06

JQuery高性能

2016-09-29 09:22:01

移動WebHtml5

2013-09-04 14:49:10

移動Web前端開發設計理念
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧洲成人av每日更新 | 美日韩精品 | xx视频在线观看 | 亚洲成人精品在线观看 | 午夜精品一区二区三区在线视频 | 毛片免费在线 | 欧美一级二级视频 | 97超碰免费| 亚洲精品乱码久久久久久蜜桃91 | 欧美成人a∨高清免费观看 欧美日韩中 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 成人教育av| 成人国产精品免费观看 | 日韩国产精品一区二区三区 | 久久精品亚洲 | 久久久久国产成人精品亚洲午夜 | 国产人成在线观看 | 色综合视频 | 91精品国产高清一区二区三区 | 亚洲在线高清 | 亚洲国产精品成人无久久精品 | 久久久久一区二区 | a在线视频| 精品国产色 | 亚洲高清三级 | 久久99精品久久 | 午夜天堂| 狠狠干在线 | 亚洲高清在线 | 成人精品在线观看 | 精品免费视频一区二区 | 波多野结衣精品在线 | 欧美aaaaaaaaaa| 欧美在线一区二区视频 | 久久国产免费 | 欧美高清视频在线观看 | 亚洲精品国产一区 | 91麻豆精品国产91久久久更新资源速度超快 | 国久久| www国产亚洲精品 | 日日摸夜夜添夜夜添特色大片 |