Dojo架構:誤解與現實

來源:互聯網
上載者:User

隨著Ajax技術的流行,越來越多的Web應用使用Ajax技術來提高使用者體驗。使用Ajax技術的一個重要優勢是不需要額外的瀏覽器外掛程式支援,只需要使用瀏覽器原生的 API,並利用JavaScript來操作即可。使用原生API時會遇到的兩個比較大的問題是瀏覽器安全色性和底層A代PI介面帶來的編程複雜性。同樣的功能在不同的瀏覽器上的實現方式是存在差異的。如果一個應用希望支援不同的瀏覽器,則開發人員需要添加很多的瀏覽器檢測或嗅探的代碼。比如同樣的事件綁定功能,在IE上使用attachEvent,而在其它瀏覽器上則使用addEventListener。除了相容性問題之外,瀏覽器提供的原生API的介面一般都比較適合用來執行細粒度的操作。當需要完成一些相對複雜的操作的時候,使用原生API介面會使得代碼比較繁瑣。以一個DOM查詢為例:在當前文檔樹中尋找給定ID的節點的所有給定標籤的直接子節點。對於這樣一個查詢,使用原生DOM API的話,則會需要使用getElementById來尋找節點,通過childNodes來擷取子節點列表以及比較節點的標籤名稱等。所要求的碼量會比較大。

JavaScript架構的出現,正是為瞭解決這兩個比較大的問題,而不同的JavaScript架構也提供了各自額外的附加價值。目前可以使用的JavaScript架構非常之多,比較流行的也有十多種。這些流行的JavaScript架構套件括jQuery、Dojo、YUI、MooTools、Prototype、Ext JS、Google Closure等。這些不同的架構有著各自不同的優勢和不足,也有著對應的不同的適用情景和範圍。由於工作的關係,筆者對Dojo架構的使用最多,對於其它架構也有一定的瞭解。本文的目的是希望澄清一些對於Dojo架構的誤解,從而協助開發人員選擇合適的架構。

在開始之前,首先簡要介紹一下Dojo架構的基本結構。Dojo架構由四個部分組成:Dojo基本庫、核心庫、Dijit和擴充庫。基本庫包含最基本的功能,核心庫是基本庫的擴充,Dijit是使用者介面庫,而擴充庫則是各式各樣的向外延展群組件。

滿足Ajax應用開發基本的需求

Dojo和其它架構一樣,都試圖滿足Ajax應用開發中的最基本的需求。這些基本的需求包括前面提到的瀏覽器安全色性和原生API的介面粒度問題,以及一些典型的應用情境。具體來說,應該包括下面一些功能集:JavaScript語言增強、XMLHttpRequest封裝、DOM查詢與操作和事件處理等。而瀏覽器安全色性體現在這些功能集在不同瀏覽器上的效果是一樣的。

從Dojo架構來說,對這些功能集的支援是比較豐富的。在JavaScript語言增強方面,對數字、字串、日期類型、數組和 JavaScript方法等有很多的增強功能。在I/O傳輸方面,除了常用的XMLHttpRequest 之外,還支援iframe和

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.