国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Web移動應(yīng)用框架構(gòu)想

Web移動應(yīng)用框架構(gòu)想

2010-09-29 15:53 |  2665次閱讀 |  來源:Tencent WSD Blog   【已有9條評論】發(fā)表評論

關(guān)鍵詞:Web,移動,應(yīng)用 |  收藏這篇資訊

iUI、jQTouch、WPTouch、PhoneGap、XUI、iWebkit、Rhodes、gwt-mobile…當(dāng)我們已經(jīng)開始驚 嘆 web移動應(yīng)用充斥著各種各樣框架與類庫的時候,其實各大web框架才剛剛開始他們的移動領(lǐng)域:Yahoo的YUI3.2的Touch版、jQuery的 jQueryMobile、ExtJS整合JQTouch和Raphaël庫推出的Sencha Touch框架。。。

ExtJs更名為Sencha的確讓我震驚不少,畢竟自己也曾是ExtJs框架的粉絲,如此重量級的框架忽然掉頭往mobile touch的方向發(fā)展,確實不是一件易事,我們也不禁驚嘆移動應(yīng)用所帶來的重大改變。

OK,在這里我并不是想跟大家介紹各種web移動應(yīng)用框架的用法介紹和性能對比。只是受ExtJs的影響,以及想知道自己到底去到一個什么程 度,以及更好 的積累沉淀下前端的經(jīng)驗,于是我開始構(gòu)想一個好的web移動應(yīng)用框架應(yīng)該如何如何,并開始嘗試著手實現(xiàn)。重復(fù)造輪子只是強迫自己更深入地去了解這個領(lǐng)域, 并不是自大到要挑戰(zhàn)什么。于是分析對比了下,總結(jié)如下:

1.輕量級

這個應(yīng)該是移動應(yīng)用框架里最重要的一點,不要想著3G的普及還有wifi啥的,國情就是國情,要大部門用戶在3秒內(nèi)下載完你那100K的css 和js文件 是強人所難。因此我們的移動應(yīng)用框架必須盡可能的輕量化,所有的命名和函數(shù)實現(xiàn)方法都要盡可能的簡練和高度壓縮。拋掉那些PC上web應(yīng)用的特效和組件 吧,不要為了一個菜單效果把7,80K的jQuery.js加在你的頁面上。

2.主流手機瀏覽器兼容性

面對如此多的手機平臺和瀏覽器,要你的移動應(yīng)用在所有瀏覽器上表現(xiàn)如一是很困難的,有時候你需要對不同瀏覽器加載不同的樣式文件,又或是運行不 一樣的函數(shù) 來實現(xiàn)效果。因此我們的框架必須有能識別各種主流瀏覽器的方法,具體點,你的框架必須能區(qū)分如iPhone、iPad、Android、Windows Phone等,OK,再國情化一點,QQ手機瀏覽器和UCWeb。最后要注意的是這里盡量不用UA的方法來判斷,因為各瀏覽器的 avigator.userAgent都很不可靠,這里可以參考下mooltools判斷瀏覽器的思路,應(yīng)用到我們的移動領(lǐng)域上。

3.強大的選擇器

選擇器可以說是一個框架靈魂,在將來的web移動應(yīng)用中會大量使用CSS3的高級偽類,因此我們的框架必須能盡快遍歷定位到盡可能多的HTML5標(biāo)簽和CSS3的偽類,哪怕是像E:first-of-type這種jquery選擇器都不支持的結(jié)構(gòu)。

4.頁面動畫效果

與桌面web應(yīng)用不同的是,移動應(yīng)用在頁面的切換效果方面要炫的多,比如:滑動切換,遮罩彈出,漸入漸出,閃屏,iPhone上的zoomin,zoomout效果等。看看CSS關(guān)于fadein和zoomin動畫的定義:

再看看JS端對頁面切換的處理:

5.Ajax解析

移動設(shè)備瀏覽器受性能和帶寬限制,ajax的應(yīng)用也與桌面應(yīng)用有較大的區(qū)別,因此低帶寬和易用性就成了ajax應(yīng)用的目標(biāo),最典型的例子就是翻頁,哈,一絲一毫的帶寬都不能放過,這方面可以參考下iUI的思想。

6.手勢操作

對,就是Touch,一個給移動互聯(lián)網(wǎng)帶來革命的事件。把mouseOut、mouseover這些桌面相關(guān)的鼠標(biāo)事件從你的移動框架里去除吧,與之替換的是各種Touch和Gesture(手勢)事件:

  • touchstart : 手指放在屏幕上時觸發(fā)
  • touchend : 手指離開屏幕時觸發(fā)
  • touchmove : 手指在屏幕上移動時觸發(fā)
  • touchcancel : 取消Touch事件(這個貌似是系統(tǒng)觸發(fā)的)
  • gesturestart : 開始手勢事件
  • gestureend : 停止手勢事件
  • gesturechange : 改變手勢事件

監(jiān)控Touch操作,我們需要利用Touch事件相對于整個頁面視圖的X軸和Y軸位置來定位(PageX、PageY),并重載默認(rèn)的 Touch事件來擴 展我們的需求,對于沒有Touch支持的瀏覽器,我們依然可以重載相應(yīng)Mouse事件,而Gesture(手勢)事件由于需要兩根手指觸發(fā)的放大、縮小、 旋轉(zhuǎn),鼠標(biāo)是無法模擬,比如下面使用CSS3的webkitTransform樣式屬性縮放和旋轉(zhuǎn)一個對象Box:

7.重力感應(yīng)

當(dāng)然,一般的應(yīng)用很少會用到重力感應(yīng),它更適應(yīng)于游戲方面。對于瀏覽器更多的是正屏與側(cè)屏的區(qū)分。我們要做的就是重載瀏覽器默認(rèn)的resize監(jiān)控事件并對正屏和側(cè)屏做出相應(yīng)的操作處理。

8.離線存儲

由于手機網(wǎng)絡(luò)的特殊性,離線存儲技術(shù)就變得相當(dāng)重要,相關(guān)的API可以看看W3C提供的有關(guān)Client-Side的描述。Client-Side提供了3種離線存儲的方案:

  • Database storage : 數(shù)據(jù)庫
  • Local storage : 本地儲存
  • Session storage : 區(qū)段儲存

我們的框架必須能很好的封裝這3種離線存儲方式,提供一個方便易擴展的API,比如storage能直接儲存JSON參數(shù)數(shù)據(jù)段,就好像下面的Demo:

恩,基本上是這樣,然后就是構(gòu)思整個框架的結(jié)構(gòu)圖了:

需要做的東西還蠻多的,構(gòu)想歸構(gòu)想,這僅僅是個開始,如果你也有Touch框架這方面的興趣和經(jīng)驗,歡迎一起來討論下:)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Touch UI:基于vue的移動端UI框架
jQuery移動版發(fā)布:支持iOS,黑莓和Android平臺
為什么說云計算是移動的未來 - CSDN.NET - CSDN資訊
主流跨平臺移動應(yīng)用開發(fā)框架比較
基于Html5的移動應(yīng)用開發(fā)經(jīng)驗總結(jié):第一篇
CSDN 論壇
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服