關於Qomo於ajax的異同~

來源:互聯網
上載者:User

現在ajax實現太過火了,什麼都向上面靠。其實早在2000前以前,WEB開發人員就已經在用Frame/Frameset來實現遠端資料的擷取。後來IE成為事實上的B端標準之後,IFrame就成了做遠端資料擷取的“標準手段”了。——例如M$就用這種方法來做MSDN網站左側的那個“巨大的樹”。

在ajax出現之前,這一系列的技術被稱為“RPC(Remote Procedure Call)”,象XMLRPC、HTTPRPC以及PHPRPC這些開源項目都是有的。PRC的一個問題,是必須實現一個S端,與WEB端的代碼約定一個描述過程名(ProcedureName)和參數表的細節的介面。這其中,我比較欣賞的是一個名為“JSRS(javascript remote scripting)”的項目,它在S端有PHP/ASP等多種語言的實現。

現在也還有在RPC這個路線上延伸的技術嘗試。例如有人用css或者script標籤來替代IFrame實現RPC。

RPC時代之後,就是ajax的時代了。ajax本意是“Asynchronous JavaScript and XML”。從本意上來說,它只是一種技術架構。是B/S兩端互動資料的一種技術方法。但由於ajax主張使用XMLHttpRequest來替代RPC技術中的IFrame。這使得在瀏覽器上能有“無介面重新整理”的良好使用者體驗。再加上現在火熱的google成功地實現了“商業品質的應用”。因此ajax技術應用變得非常廣泛。——但僅以跨瀏覽器特性而言,(現在的)IFrame的相容性也極佳。

由於ajax以xml作為傳輸層中表達資料的規範,因此它有良好的多語言編碼基礎,也能表達很複雜的資料結構。這也是傳統的RPC方式所不能比擬的。

除去這些特性,ajax(的本意)就只是一種技術手段了。

然而現在的ajax狂熱者們把ajax的應用推動另一層“境界”。由於ajax使用xml,因此可以在S端將對象序列化為XML資料;而在B端,由於javascript是一種“有良好的邏輯處理能力”的“基於對象的語言”,因此可以用將XML解釋成用戶端對象。——從外在的表現上來講,ajax實現了“將S端的對象推送到B端”的能力。

這是目前ajax技術的主要發展方向之一。“如何在S端和B端用同樣的方式‘表達’和‘理解’對象”,以及“讓對象的可執行能力被序列化,並推動到B端”是ajax面臨的問題。而第一層障礙,就是JavaScript自身對“物件導向”支援的不完整,因此無法表達一些S端對象的特徵。

——例如如果S端是.NET,它的對象A有一個具有讀寫器(getter/setter)的特性,那麼對象被序列化並傳到B端的時候,JavaScript如何理解對象A中的讀寫器呢?所以ajax現在都是與一個“實現了更豐富的OOP特性的javascript”綁在一起的。

我想大家應該看到了問題之所在了。“實現更豐富的OOP特性”與“ajax(非同步JS與XML)”有什麼關係呢?ajax提出了一個語言層級的需求,然後有一些架構/項目去實現了這些語言特性,再綁在ajax上。ajax就這樣越做越大。現在的ajax,已經變成“語言特性的實現+編程架構+技術”,而不是ajax技術本身了。

Qomo並不去追究這種技術的演化與變形。Qomo關注於一些“語言特性的實現”,也關注於一些“編程架構”的實現。在這兩種實現的基礎上,Qomo提供了一個輕量的ajax實現技術的架構,也提供了一套(相對於FCL/VCL)輕量級的Component Library。

這裡既然提到了Qomo的特性,那麼我就將我在sourceforge上申請create project的描述轉過來。大家可以自己來比較分析:

Qomo OpenProject is a True and Full OOP framework and UI Library.

{ note:  # implemented,  + implementing, * planning, - tring }

include features of OOP:
 # inhreited by class
 # attribute getter/setter
 # type system of object
 # abstract and abstract exception
 # mutilcast event
 + interface in javascript
 # namespace system
 # package/unit import
 # tiny ajax architecture
 + SOA Architecture
 * template programming
 - more...

include features of UI:
 # tidy component framework
 # graphics abstract level and a VML implement
 # database abstract level and a ArrayDB/FileDB implement
 # html element controller and some control component
 # bar, menu, window, etc. in virsual component library.
 * more component, mount a tidy(very very) FCL or VCL.
 - more ...

other features:
 # some utils class.
 # auto class inhnert chart scan and generable
 # document generable tool (C# source)
 # testing and profing tools (JavaScript Source)
 - OOP Core and UI can debugging and designing in VS.NET IDE.
 - more ...

the project extracted from a enterprise project. free and open source for all JavaScript fans, and hope anybody join/impulse the project.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.