web 2.0/Ajax 後面的技術

來源:互聯網
上載者:User

從04年,Web 2.0正式被提出來之後。圍繞業務模式,模型。web 2.0應用雨後春筍。比前幾年吵的很熱的SOA還要火爆。我google了一下,web 2.0的結果是SOA 的20倍。在技術領域,哪怕開發工具,好似不支援web 2.0就很落伍了一樣。我最近聽了一個delphi的講座,delphi 2007很快推出,他居然也說要支援web2.0. 那麼對web 2。0的支援,從技術角度講有那些層次呢。
1. 對Javascript/Ajax/DOM的封裝和實現
    web 2.0 的技術其實分為三個部分,指令碼語言, 瀏覽器展現的模型,非同步呼叫。對於指令碼語言,一般是, Sys.Serialization.Javajavascript,javascript本省沒有什麼安全類型,OO特性,命名空間。而一些第三方的庫都會幫你去封裝,去幫你做一些javascrip的OO使用。比如幫你擴充String的方法,實現一些常用的工具類。
 microsoft atlas client library (http://ajax.asp.net/docs/ClientReference/default.aspx)就有這部分的特性
比如你可以寫OOScriptSerializer serialize代碼一樣

 Sys.Serialization.JavaScriptSerializer.serialize(yourobject)

 就可以把一個對象序列華成Json格式。

 另外就是對於Ajax的支援。Ajax 很大的特徵就是非同步呼叫。展開的話,就是不同的瀏覽器有不同的非同步呼叫組件。調用的時候需要知道調用那個url,對方返回的是個什麼內容,是javascript?還是一個對象(json格式)還是xml?Callback 是什嗎?為此幾乎所有的ajax 架構都會封裝這個特性。幫你做到瀏覽器安全色,編程透明。以下是Dojo的一個調用。
 用戶端調用服務端的一個方法,服務端返回一個Json格式的對象。而對於.net ,也有一些第三方的庫,負責把你序列華對象到json格式。比如 http://www.newtonsoft.com/products/json/
 你在用戶端只要寫一下,簡單的一個方法調用。就可以完成絕大多數的操作。
  

var bindArgs = {
    url:        "http://youserver/yourapp.aspx",
    mimetype:   "text/json",
 sync:true,
    error:      function(type, errObj){
          alert("error");
    },
    load:      function(type, data, evt){
        // handle successful response here
   dojo.byId("result").innerHTML=data.FullName;  
    }
 };
 
  dojo.io.bind(bindArgs);

  
 僅僅有javascript的特性支援加非同步呼叫還不夠,能否跟Dom結合作出一些現成的可用的組件或者控制項呢?比如能否給我一個自動完成的combox類似google sugesst一樣?能否給我一個treeview非同步從後台抓資料?可否有一個拖放額效果?
 很多庫也是支援這方面的需求。比如YahooUI(YUI),Dojo,MochiKit等。這三個庫都是用戶端的庫,也就是說完全基於javascript+瀏覽器模型
 
2.對既有編程體系的擴充使之支援Ajax.
 兩個典型的例子就是微軟的Atlas server-side. 您只需拖放一個UpdatePanel控制項,稍許配置一下就可以實現部分重新整理。而Atalas幫你做自動的render成JS代碼,js代碼負責展現,後台非同步呼叫以及操作dom。而且還支援可視化的調試。
 
 當然 Delphi 2007對 web20的支援也是這個範疇。有一些VCL for web的組件,讓你可以用delphi的文法操作對象,對象自動有非同步事件。而產生的程式碼都是透明的。當然是非常混亂的。所以特別大的網站很少這樣用。原因1:產生的js數量太大,影響載入速度。 2。太多不可控。因為這些特性,是很容易自己開發實現。
 
3. web 2.0的實現技術。出了傳統的Ajax之外呢,你也可以用machomedia的Flex,實現強的展示,使用者體驗。還有一些快速開發的技術,比如用Ruby on Rails,我今天看了一個video,他可以15分鐘作出一個blog來。。。

  
  

相關文章

聯繫我們

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