揭秘AJAX將成為移動(dòng)Web2.0時(shí)代首選開發(fā)平臺(tái)_AJAX教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:如何十分鐘學(xué)會(huì) xajax
      譯者按: xajax 最大的特點(diǎn)是他采用了xml response,這樣我們可以用php來布置,處理異步傳送數(shù)據(jù)之后,網(wǎng)頁內(nèi)容的更新。而這些操作其它的ajax 框架都是由js來完成的的。xajax 使我們只需要寫一些php函數(shù),就可以實(shí)現(xiàn)。 所有學(xué)好xajax的關(guān)健在于熟練掌握 xajax

      一、 引言

        最近,Opera宣布通過他們的瀏覽器把AJAX技術(shù)應(yīng)用于移動(dòng)設(shè)備開發(fā)中。考慮到Opera瀏覽器在目前瀏覽器市場(chǎng)(特別是在移動(dòng)瀏覽器市場(chǎng))的流行性,我們可以預(yù)計(jì)這一宣布對(duì)于整個(gè)瀏覽器市場(chǎng)必然會(huì)產(chǎn)生重要影響。從加入到移動(dòng)服務(wù)開發(fā)市場(chǎng)幾年的經(jīng)驗(yàn)來看,我相信現(xiàn)在的AJAX很可能會(huì)替換Java ME和XHTML而成為開發(fā)移動(dòng)應(yīng)用程序的首選平臺(tái)。

        在正式開始前,我想作一下說明-我相信,移動(dòng)Web 2.0遠(yuǎn)遠(yuǎn)不止"移動(dòng)AJAX"這一層應(yīng)用。移動(dòng)Web 2.0應(yīng)該包含把Web 2.0的所有七個(gè)原則都將應(yīng)用于移動(dòng)市場(chǎng)。在本文中,我想只討論一下AJAX,也就是只討論Web 2.0的一個(gè)方面。

        二、 什么是AJAX?

        AJAX是Web 2.0的一種可選的增強(qiáng)技術(shù),而不僅僅指一種技術(shù)。而是,它把許多現(xiàn)有技術(shù)結(jié)合到一起,也就是:

        · XHTML和CSS-用于基于標(biāo)準(zhǔn)的描述

        · 文檔對(duì)象模型-用于動(dòng)態(tài)顯示和交互

        · XML和XSLT-用于數(shù)據(jù)交換和操作

        · XMLHttpRequest-異步數(shù)據(jù)檢索

        · JavaScript-用于把前面這些技術(shù)"捆綁"到一起

        在AJAX出現(xiàn)之前,實(shí)現(xiàn)"復(fù)制"本機(jī)應(yīng)用程序所具有的豐富的和可交互的設(shè)計(jì)相當(dāng)困難。AJAX在解決這些問題方面與其前應(yīng)用的一些技術(shù)存在明顯不同,因?yàn)樗谝呀?jīng)為眾多開發(fā)人員所熟悉的現(xiàn)有的、非專利性標(biāo)準(zhǔn)。

        在傳統(tǒng)型web應(yīng)用程序中,大多數(shù)用戶行為都會(huì)觸發(fā)一個(gè)HTTP請(qǐng)求。然后,由服務(wù)器進(jìn)行一些處理并且把結(jié)果返回到用戶。在服務(wù)器處理過程中,用戶只能等待!從技術(shù)的角度來看,web應(yīng)用程序的這種"開始-停止-開始"特征并沒有什么不好的地方,但是這并沒有從用戶交互的角度來解決問題(因?yàn)閹缀跛械挠脩艚换ザ家獙?dǎo)致到服務(wù)器的處理,而在服務(wù)器進(jìn)行這一處理時(shí),用戶只能等待!)。

        通過使用AJAX引擎,AJAX解決了這個(gè)問題。在會(huì)話的開始,AJAX應(yīng)用程序加載AJAX引擎。AJAX引擎以JavaScript開發(fā)(作為一個(gè)JavaScript庫)并處于一個(gè)隱藏幀中。用戶與AJAX引擎進(jìn)行交互而代替原來的與web服務(wù)器交互。如果用戶交互并要求到服務(wù)器的處理,那么,該AJAX引擎自己來處理當(dāng)前交互。當(dāng)用戶交互需要一些來自服務(wù)器的數(shù)據(jù)時(shí),AJAX引擎將進(jìn)行異步地調(diào)用(經(jīng)由XML/XMLHttpRequest API)而不會(huì)打斷的用戶的"思路"。

        AJAX是"異步的",其含義是指,AJAX引擎與服務(wù)器的通訊以及與用戶交互是異步的。因此,用戶能夠得到一種"無縫的"體驗(yàn)(也就是說,用戶不必等待)。

        當(dāng)前,AJAX背后存在一種"動(dòng)力"-開發(fā)人員已經(jīng)熟悉對(duì)于這種技術(shù)支持的背景,并且所有組成AJAX的技術(shù)都已經(jīng)成熟并穩(wěn)定起來。AJAX成為web上許多新型應(yīng)用程序的基礎(chǔ),例如Google suggest,Google Maps,還有Flickr和Amazon的A9.com的部分實(shí)現(xiàn)。

        三、 移動(dòng)應(yīng)用程序開發(fā)模型及其缺點(diǎn)

        從上面的討論和有關(guān)參考文章來看,AJAX能夠明確地解決上面這兩種問題,也即是能夠提供一種優(yōu)異的UI和一種標(biāo)準(zhǔn)化形式的數(shù)據(jù)檢索。其實(shí),這兩個(gè)問題也可以應(yīng)用到移動(dòng)設(shè)備,而且通過擴(kuò)展,AJAX也能夠有效地解決這些問題。然而,我相信,其功能遠(yuǎn)非這些!具體地說,它將會(huì)解決移動(dòng)環(huán)境中的下列問題:

        1. 市場(chǎng)份額問題

        2. 移植問題(特定于下載應(yīng)用程序,就象基于Java ME構(gòu)建的那種)

        3. 應(yīng)用程序無障礙發(fā)布問題

        另外,它還有大量的社區(qū)開發(fā)人員在背后支持它-這也是很重要的一個(gè)方面!

        讓我們考慮現(xiàn)有移動(dòng)應(yīng)用程序開發(fā)。移動(dòng)應(yīng)用程序共有兩種主要種類:瀏覽性應(yīng)用程序和下載性應(yīng)用程序。當(dāng)然,還有其它類型(就象消息發(fā)送應(yīng)用程序、SIM應(yīng)用程序和嵌入式應(yīng)用程序),但是我們今天所見的大多數(shù)的應(yīng)用程序應(yīng)該屬于下載性或?yàn)g覽性應(yīng)用程序范圍。

        瀏覽性應(yīng)用程序:從概念上講,瀏覽性應(yīng)用程序幾乎類似于瀏覽web的程序,但是又具有特定于移動(dòng)性的限制(例如,小型設(shè)備尺寸)。類似于web,服務(wù)可以通過一種微型瀏覽器加以存取-它使用一個(gè)URL來定位一個(gè)位于無線web服務(wù)器上的服務(wù)。客戶端幾乎不具有任何處理能力。

        與瀏覽性應(yīng)用程序相比,下載性應(yīng)用程序(智能客戶端應(yīng)用程序)是這樣一類應(yīng)用程序:首先要下載它們,然后安裝到客戶端設(shè)備上。然后,這些應(yīng)用程序在本地設(shè)備上運(yùn)行。不象瀏覽性應(yīng)用程序,一個(gè)下載(或智能客戶端)應(yīng)用程序在其運(yùn)行時(shí)不需要連接到網(wǎng)絡(luò)上。下載性應(yīng)用程序也被稱作是"智能客戶端"應(yīng)用程序,因?yàn)榭蛻舳耍ㄒ布矗苿?dòng)設(shè)備)能夠進(jìn)行一些處理和/或具有一定的持續(xù)性存儲(chǔ)能力(緩沖)。當(dāng)前,大多數(shù)基于Java的游戲都是下載性應(yīng)用程序,也即它們被下載到客戶端,并要求在客戶端作一些處理并且不需要總是連接到網(wǎng)絡(luò)上。企業(yè)移動(dòng)應(yīng)用程序,例如銷售行業(yè)自動(dòng)化,也是經(jīng)常的智能客戶端應(yīng)用程序的例子。

        Java ME是開發(fā)下載性應(yīng)用程序最常用的方式,而XHTML是開發(fā)瀏覽性應(yīng)用程序最常用的方式。下面,讓我們?cè)敿?xì)闡述前面所提到的問題,然后討論AJAX技術(shù)是怎樣解決這些問題的。

        問題一:市場(chǎng)份額

        移動(dòng)應(yīng)用程序是主要的消費(fèi)者應(yīng)用程序。就象這一時(shí)期正在發(fā)展中的其它工業(yè)一樣,移動(dòng)數(shù)據(jù)工業(yè)也是一個(gè)正在興起的行業(yè),它僅占有一定的市場(chǎng)份額。為了達(dá)到商業(yè)性運(yùn)營目的(特別是考慮到網(wǎng)絡(luò)效果的需要),消費(fèi)者應(yīng)用程序需要有大批的用戶群體。

        上面市場(chǎng)的運(yùn)作可能基于單個(gè)的專利標(biāo)準(zhǔn),例如來自于Qualcomm的BREW(這顯然有它的不利之處)或者通過不受任何企業(yè)實(shí)體控制的具有很少工業(yè)障礙的開放標(biāo)準(zhǔn)。

        為了說明市場(chǎng)份額怎樣影響一種新的服務(wù)的商業(yè)生存能力,我經(jīng)常推薦使用下列途徑(其中,大多數(shù)的數(shù)據(jù)都能夠容易地從網(wǎng)上獲取)。其思想是,使用"同心圓"理論試圖估計(jì)出你的應(yīng)用程序的目標(biāo)用戶群。

        下面是我使用的一個(gè)示例步驟:

        1. 準(zhǔn)備發(fā)行你的應(yīng)用程序的國家有多少人口?

        2. 在上面的人口中,人均手持設(shè)備占有率是多少?

        3. 在這樣的人口中,你想雇用什么樣的操作員?(大多數(shù)國家都有多種類型的移動(dòng)操作員)

        4. 在這樣的人口中,你的目標(biāo)手持設(shè)備是什么?(并非所有的操作員支持所有的手持設(shè)備)

        5. 使用什么樣的發(fā)布技術(shù),是Java,SMS,還是WAP?

        6. 應(yīng)用程序是否有任何特殊技術(shù)需要,例如基于位置的服務(wù)?有多少人擁有支持這種技術(shù)的手持設(shè)備?

        7. 你的市場(chǎng)分割分析提示了什么規(guī)律?(最簡單的分割是男性/女性,預(yù)付/后付,等等)

        8. 你的市場(chǎng)渠道有哪些?

        9. 我們期望達(dá)到什么樣的市場(chǎng)份額,并且基于我們的市場(chǎng)預(yù)算把它們轉(zhuǎn)化為多少顧客數(shù)?(也即,轉(zhuǎn)化率-典型情況下大約為2%)

        這將為你提供你的目標(biāo)用戶群數(shù),并且這個(gè)目標(biāo)用戶群數(shù)乘以每月潛在的下載數(shù)應(yīng)該為你計(jì)算出你每月的收入。而且,這還能夠直接聯(lián)系到你的費(fèi)用底值-包括你的開發(fā)費(fèi),移植費(fèi)等等-以達(dá)到一種更為客觀的在這種新型服務(wù)上投資所存在的成功/失敗率的認(rèn)識(shí)。

        上面的方法揭示了一個(gè)市場(chǎng)份額問題,并且它暗示,今天很少的移動(dòng)服務(wù)能夠贏利。因而,我們可以創(chuàng)建一種增殖服務(wù)-'廣播內(nèi)容應(yīng)用程序',例如ringtones和圖像軟件;但是,在大眾市場(chǎng)上具有極少的相應(yīng)的工具應(yīng)用程序。

        問題二:移植問題

        這個(gè)問題特定于所下載的應(yīng)用程序(在Java ME中更為普遍)。在Java ME環(huán)境下,"書寫一次到處運(yùn)行"只是個(gè)玩笑而已!請(qǐng)不妨考慮一下典型地使用Java ME開發(fā)的移動(dòng)游戲(一種可載的應(yīng)用程序)的情況。

        首先,好的方面在于:

        · 據(jù)報(bào)導(dǎo),有些運(yùn)營商,例如Sprint,目前其移動(dòng)游戲和其它數(shù)據(jù)服務(wù)占居他們每年收入的大約百分之十;

        · 工業(yè)咨詢公司Ovum注意到,現(xiàn)在,全球市場(chǎng)上存在超過四億五千萬支持Java技術(shù)的手持設(shè)備,還有三千八百萬和一千五百萬支持BREW和Symbian的手持設(shè)備;

        · 移動(dòng)游戲出版商在2004年在全球的銷售達(dá)到12億美元,并且在2005年有望達(dá)到一種更強(qiáng)的銷售勢(shì)頭,因?yàn)樵絹碓蕉嗟南M(fèi)者發(fā)現(xiàn)其實(shí)這種微型游戲控制臺(tái)實(shí)際上早已存在于他們的手機(jī)上。

        但是,接下來讓我們看一下不利的因素:

        · 游戲移植通常需要開發(fā)人員適合于不同的屏幕分辨率,處理器速度,內(nèi)存量限制和音頻能力,所有這些都因設(shè)備不同而存在很大差異。

        · 對(duì)于出版商來說,這會(huì)使他們錯(cuò)過在一個(gè)高度競(jìng)爭性的工業(yè)中關(guān)鍵的市場(chǎng)機(jī)會(huì)。

        · 作為一個(gè)示例,設(shè)想你是一個(gè)中等規(guī)模的游戲出版商,總共有30部游戲。為了實(shí)現(xiàn)你的游戲能夠在全世界范圍內(nèi)以五種語言并且僅在50種設(shè)備上可用,你需要?jiǎng)?chuàng)建7,500種不同的發(fā)布版本。以每一種發(fā)布版本需要花費(fèi)2,500計(jì)算,你需要一項(xiàng)接近于一千九百萬美元的移植處理預(yù)算。

        這嚴(yán)重地限制了業(yè)務(wù)規(guī)模,并因此使得極少的移動(dòng)游戲能夠贏利。

        問題三:應(yīng)用程序"無壁壘"發(fā)布

        前面使用Java ME技術(shù)進(jìn)行移動(dòng)開發(fā)的每一個(gè)示例所存在的困境說明,僅僅創(chuàng)建一種社區(qū)(正如Sun所做的,就技術(shù)而言,其一直運(yùn)行良好)是遠(yuǎn)遠(yuǎn)不夠的。該技術(shù)和基于之創(chuàng)建的應(yīng)用程序必須保持同類和可互操作以支持網(wǎng)絡(luò)效果并且獲得關(guān)鍵的客戶群體。一種平臺(tái)存在越少的"瓶頸",則對(duì)整個(gè)工業(yè)來說意味著這是更好的事情。

        四、 為什么AJAX能夠替換JavaME和XHTML而成為更受歡迎的移動(dòng)開發(fā)平臺(tái)?

        AJAX能否解決上面提出的問題呢?我的觀點(diǎn)是,可以。AJAX被通過瀏覽器加以存取。顧客能夠使用兩種方式得到瀏覽器-或由制造商把瀏覽器預(yù)安裝到手機(jī)中,或把瀏覽器作為一種獨(dú)立的應(yīng)用程序進(jìn)行安裝。

        任何人都可以下載一種智能手機(jī)瀏覽器,正如這里的Opera鏈接所顯示的60種系統(tǒng)的手機(jī)的情況一樣。這意味著,所有的顧客能夠潛在地安裝他們自己的瀏覽器,并且如果有足夠人這樣做,那么我們就有了關(guān)鍵的用戶群體問題-憑借著極少的"瓶頸"。

        而且,AJAX提供了一種優(yōu)異的用戶體驗(yàn)并且已經(jīng)得到開發(fā)人員社區(qū)對(duì)它的支持。解決了關(guān)鍵的用戶群體問題可能性(由于更少的瓶頸)意味著更多的應(yīng)用程序贏利機(jī)會(huì)-導(dǎo)致一種更好的應(yīng)用程序的良性循環(huán)。

        今天的Java ME已經(jīng)表現(xiàn)出存在嚴(yán)重的缺陷(并不是這一技術(shù)本身而是業(yè)務(wù)模型),而XHTML也將成為"過時(shí)",因?yàn)锳JAX將提供一種優(yōu)異的用戶體驗(yàn)。因此,我相信,AJAX將會(huì)成為移動(dòng)應(yīng)用程序的更具優(yōu)勢(shì)的開發(fā)平臺(tái),從而嚴(yán)重影響Java ME和XHTML的市場(chǎng)。

        五、 備注

        · 我已經(jīng)說過"首選"而不是"替代",也就是說,我也并不盼望AJAX取代任何技術(shù)

        · AJAX不可能解決所有的問題。你仍然需要?jiǎng)?chuàng)建一種對(duì)移動(dòng)顧客有用的服務(wù)

        · AJAX并非是創(chuàng)建一個(gè)更好的接口的唯一嘗試。也存在其它一些技術(shù)嘗試,但是僅有非常有限的成功,而且不是"跨工業(yè)性"的(或是專利性的)。例如來自于bitflash的移動(dòng)SVG,superscape的用于3D游戲的轉(zhuǎn)向技術(shù)(其實(shí),它是JSR 184-針對(duì)Java ME的移動(dòng)3D圖形API的一種實(shí)現(xiàn)),還有Macromedia(現(xiàn)在的Adobe)的移動(dòng)技術(shù),等。

        · 并不是有大量的人在實(shí)際瀏覽移動(dòng)互聯(lián)網(wǎng)。盡管WAP的使用顯示出一種增長勢(shì)頭,但是,這些數(shù)據(jù)(包括把WAP作為一種傳輸機(jī)制使用)典型地僅用于下載內(nèi)容。換句話說,你每次都要下載一個(gè)ringtone,而且你還要隱式地創(chuàng)建一個(gè)WAP頁面。總之,我懷疑實(shí)際瀏覽移動(dòng)互聯(lián)網(wǎng)的消費(fèi)者數(shù)字可能很低

        · 極少的移動(dòng)操作員曾經(jīng)嘗試過加入到社區(qū)開發(fā)人員中。實(shí)際上,我能夠想到的唯一例子只是source o2

        · 一部分開發(fā)人員可能會(huì)從我與一個(gè)北朝鮮供應(yīng)商的討論(當(dāng)時(shí)我是在漢城的imobicon進(jìn)行這一談話的)中得到一些啟示。這位供應(yīng)商最終設(shè)法把他的游戲顯示到一家UK portal上。然而,這是因?yàn)橐粋(gè)北朝鮮聚合器設(shè)法與一個(gè)UK聚合器通訊的結(jié)果。因此,他現(xiàn)在擁有兩個(gè)聚合器和一個(gè)雇傭操作員!而他自己卻留下很少。這真是一件極其令人難過的事情。肯定存在某種方法來全球性創(chuàng)建和發(fā)布應(yīng)用程序,也就是說,你要進(jìn)行瀏覽器編程并且使用瀏覽器的任何人都能夠下載和運(yùn)行你的應(yīng)用程序

        · 移動(dòng)操作員經(jīng)常在處理收費(fèi)和位置服務(wù),等等問題上進(jìn)行爭論。這是不錯(cuò)的-但是讓我們還是首先關(guān)心一下數(shù)字的問題吧。另外,收費(fèi)都要付出一定的代價(jià)并且可能網(wǎng)上存在更好的收費(fèi)機(jī)制。

        六、 小結(jié)

        總之,移動(dòng)應(yīng)用程序首先是消費(fèi)者集中的。他們需要關(guān)鍵的用戶群體問題。當(dāng)前,該市場(chǎng)還相當(dāng)不成熟,而且當(dāng)前的商業(yè)模型也支離破碎。AJAX提供了一種潛在的更好的解決方案-比較于Java ME和XHTML來說,因?yàn)樗牧己玫陌l(fā)布機(jī)制而且組合了更少的潛在的瓶頸。所以,當(dāng)前的經(jīng)濟(jì)模型并不積極支持Java ME,而AJAX提供了一種比XHTML更為優(yōu)異的用戶體驗(yàn)。它得到社區(qū)開發(fā)人員的大力支持。

        最后,請(qǐng)注意,我已經(jīng)說過AJAX將成為"首選"模型而不是"唯一"模型,我也并不盼望AJAX取代任何技術(shù)-Java ME或XHTML。

      分享:AJAX快速入門之HTTP協(xié)議基礎(chǔ)
      要很好地領(lǐng)會(huì)Ajax技術(shù)的關(guān)鍵是了解超文本傳輸協(xié)議(HTTP),該協(xié)議用來傳輸網(wǎng)頁、圖像以及因特網(wǎng)上在瀏覽器與服務(wù)器間傳輸?shù)钠渌愋臀募V灰阍跒g覽器上輸入一個(gè)URL,最前面的http://就表示使用HTTP來訪問指定位置的信息。(大部分瀏覽器還支持其他一些

      來源:模板無憂//所屬分類:AJAX教程/更新時(shí)間:2010-02-26
      相關(guān)AJAX教程