Ajax,Asynchronous JavaScript and XML
非同步JavaScript與XML

Ajax是目前網站及Web應用程式最為熱門的前端開發技術,開發人員可以應用Ajax技術建立互動性極佳的使用者介面。

Ajax是「Asynchronous JavaScript and XML」(非同步JavaScript與XML)的縮寫字,是由Jesse James Garrett在2005年2月於「Ajax: A New Approach to Web Applications(Ajax:Web應用程式的新方法)」一文中提出,Garrett認為Google Suggest和Google Map在互動時的反應時間極為快速,沒有過去頁面重載的情形,大大拉近Web應用程式與桌面應用程式之間的距離。他以Ajax這個縮寫字為這個技術命名,並指出Ajax根本性地改變Web的可能性。

Garrett進一步闡述Ajax並非是項新技術,而是數種既有技術的合稱,它至少包含標準化的HTML與CSS語法、具動態互動與展示效果的DOM(文件物件模型)、交換與操作XML資料以及利用XMLHttpRequest物件進行非同步的傳輸,結合之後創造出完全不同的Web新時代。

如同Garrett所說,Ajax本身並沒有太大的新花樣,然而奇妙之處也在這裡,自從Ajax一詞被提出後,這些技術迅速獲得世人的目光,也大量被應用在網站與Web應用程式的開發上,使得網站的可用性與互動效果大為提升。雖然也有人質疑Ajax一詞的精確性與適用性,但是不可否認地,它的出現的確有效地推廣了這些技術。

Ajax基本上利用JavaScript作為開發語法,運行在用戶端的瀏覽器中。然而由於Web語法在發展過程中,瀏覽器對標準化語法的支援程度不一,因此造成Ajax存在相容性問題,造成開發上一定的難度。後來有許多Ajax開發框架出現,用意便是協助開發人員解決這些難題。Ajax近幾年的開發經驗中,也累積了一些開發模式,提醒設計人員如何適度應用Ajax,以達到最佳效果,例如SEO的問題即是顯著的一例。雖然Ajax相關的技術,並非從這個詞彙發明之後才開始,然而Garrett使用這個簡明的縮寫字,卻讓Web加速跨越原來網頁的限制,引發一股技術熱潮,這應該也是他本人始料未及之處。

Ajax framework
Ajax框架
使用Ajax概念設計網站時,經常在處理重複性與相容性的工作,為了簡化這些步驟,於是有各式各樣Ajax框架應運而生。最典型的Ajax框架是利用JavaScript寫成,不但簡化了JavaScript語法,也讓開發人員可以更容易做到非同步傳輸或操作網頁中的元素。另外也有針對像Java、.NET語法設計,或是從伺服器為平臺發展函式集,讓使用者不需使用JavaScript語法也能使用。

Asynchronous
非同步
Asynchronous是Ajax縮寫字的字首,意指在瀏覽器與伺服器的資料傳輸過程中,不採用同步請求模式、意即不遵循網頁上常見的發出請求,重新載入頁面的模式,而在請求發出之後,使用可以繼續在網頁活動,讓請求在背景執行,等到伺服器完成請求,傳回資料後,再動態局部更新頁面,不會有整個頁面重載的行為,這就是Ajax最核心的非同步應用觀念。

Compatibility
相容性
將相容性視為Ajax程式設計的最大挑戰,不少開發人員應該都會點頭稱是。在網頁的發展歷程中,瀏覽器實作標準語法方式不一,加上各自發展特殊語法以強化競爭性,讓網頁在不同的瀏覽器呈現的結果未必如設計人員預期。因此像非同步傳輸、事件處理語法、CSS語法等,瀏覽器都有不同的作法,造成利用Ajax設計程式時,經常必須處理相容性問題,而無法完全專注在程式邏輯本身。

CSS,Cascading Style Sheets
階層樣式表

CSS是HTML文件用來設定視覺效果的語法。過去的網頁設計,通常將內容與視覺元素混雜在一起,例如使用<font>語法設定不同段落的文字大小或顏色,或是利用<table>語法作為排版的手段,而這些方式,讓內容與形式混雜在一起,造成日後維護上的難度。CSS能讓視覺效果與文件內容分開,方便集中管理與調整。此外,Ajax透過動態調整CSS的屬性值,能讓畫面即時產生動畫效果。

DOM,Document Object Model
文件物件模型

就瀏覽器的範疇來說,我們看到頁面上的任何元素,都是DOM的呈現。DOM是以樹狀結構和節點組成的模型,網頁的內容從<HTML>標籤開始,向下層層展開。雖然DOM不專屬於Ajax技術,不過Ajax往往結合靈活、豐富的頁面控制,這必須動態操作及改變DOM元件才能達成。

JSON,JavaScript Object Notation
JavaScript物件表示法

JSON就如字義所法,是利用JavaScript物件實字的表示法,用來表達一連串資料的方式。它與XML文件具有相同的用意,讓資料可以被程式解析、應用,而JSON和XML比較,少去標籤語法來標記資料,因此更為輕巧,一般而言,也更容易撰寫與閱讀。隨著Ajax盛行,JSON這種JavaScript原生語法比起XML更容易操作、使用,讓JSON越來越有可能取代XML在Ajax技術中的地位。

SEO,Search Engine Optimization
搜尋引擎最佳化

伴隨Ajax運用在網站上的機會越來越高,SEO的問題也浮上檯面。搜尋引擎最佳化,目的在讓搜尋引擎能正確地搜尋網站內容,並且提高網站在茫茫網海中的可見度,因此搜尋引擎最佳化乃是兵家必爭之地。Ajax可以透過修改DOM動態載入內容,設計人員有時會將內容採用這種方式載入,但是這讓搜尋引擎無法正確搜尋、庫存頁面,因此設計人員必須在動態效果與內容可搜尋之間尋求平衡。

Usability
可用性

在所有的人機界面中,可用性都是一項專門的議題,目的在讓使用者介面在互動時更為簡單易用,也能兼顧效率與實用性。在Ajax技術領域中,可用性是它提升網頁使用者行為與目前使用者習慣格格不入的地方,最常被提及的是它將桌面應用程式的使用者行為搬移到網頁上,像是「Google文件」或「Yahoo! Mail」如Outlook般的郵件介面,這些都解決了過去網頁操作上的可用性問題。

XMLHttpRequest
X-M-L-H-t-t-p

XMLHttpRequest是Ajax的靈魂角色,透過HTTP的傳輸協定,在瀏覽器和伺服器之間處理XML及其他資料格式之間的傳輸,包含了同步與非同步的方式。這個物件最早由微軟提出,並在IE 5中以ActiveX元件方式實作,之後Mozilla 1.0和Safari 1.2也將它納進瀏覽器,使它逐漸普及化,成為業界標準。由於它尚未成為W3C標準,各家實作仍有些差異。在實際使用時,程式必須先判斷瀏覽器為IE或非IE瀏覽器,才能正確宣告對應的XMLHttpRequest物件,以進行非同步傳輸。

熱門新聞

Advertisement