[ASP.NET AJAX]類似.NET架構的JavaScript擴充

來源:互聯網
上載者:User

  最近AJAX風靡全世界,在CommunityServer中他運用了自己定義的封裝了js,並且可以跨瀏覽器,在較小的應用程式中,他比較適合,而且使用也比較簡單。但是對微軟的Microsoft AJAX還是一點不瞭解的我,從今天開始也要進入學習,一步一步的去瞭解,慢慢的深入。在部落格園裡也看了一些文章,但是他們大都是說AJAXExtendControl的,我想從指令碼入手來學習一下Microsoft Ajax,順便也對指令碼進行複習一遍,豈不是一舉兩得。從原檔案中我們可以看到Microsoft Asp.net Ajax是一個很強大,而且很適合C#開發人員擴充的指令碼庫。在Microsoft Asp.net Ajax指令碼庫中添加了一個Type及System來對JavaScript對象的擴充。其中擴充並形成類似.NET中常見的命名空間(namespaces),抽象類別(inheritance)(註:我是這麼認為的,不知道有沒有更好的說法),介面(interfaces),枚舉(enumerations),以及對象反射(reflection),同時也對(字串)strings,(數組)arrays進行了擴充。這讓我們這些.NET的開發人員,特別是C#開發人員更好,更有效對指令碼的擴充。

  要達到將普通的JavaScript封裝成類似.NET的架構,Type可謂是功不可沒阿,通過Type中的一些方法可以將我們的指令碼註冊到一個類,將一個類註冊到一個命名空間中等等。下面我們將會對前面幾個對應的類似.NET架構的Microsoft Ajax指令碼庫進行逐個的介紹。

  1.Namespaces

  是一個邏輯分類(個人虛構,如有雷同純屬巧合),及時將很多個類(classes)進行分類,通過Type.registerNamesapce方法可以將一個class(一下稱為"類",雖然它不象話,但總的給個說法吧!)註冊到一個namespace(以下成為"命名空間")中。

  2.Classes

  引用Type,所有的類都繼承自JavaScript的object(在.NET中所有的類也是繼承自Object),通過Type.registerClass將一個對象註冊到類中。由於應用一個物件導向的模型,在Microsoft AJAX 指令碼庫中也能夠實現繼承基類的對象執行個體。一個類可以包含四個成員:fields, properties, methods, and events。
 
  fields:可以通過應用當前類的執行個體對象來引用如myClass.name="MyName";

  properties:通過帶有get和set標記的方法對其進行付值,在Asp.net Ajax中通過"get_"和"set_"與方法名稱結合來給他付值,如果要對一個叫myname的屬性付值,可以通過get_myname和set_myname方法來完成此項任務。

  methods:方法也就是函數,這裡對不多說了。

  events:事件主要涉及到一些行為動作,當一個事件被掛起(啟用)時,將調用一個或多個從handlers繼承的方法來處理這個事件。
 
  3. Inheritances

  眾所周知虛函數是要被重寫的,大多數物件導向的程式設計語言都支援類的繼承和重寫,但是JavaScript是不支援這項功能的。但是在Asp.net Ajax中通過特殊的方式(以"_"為起始標記的方法將被視為私人方法,將不能在外部類中執行此方法)實現了這種重寫的功能,將會更好的對指令碼庫進行擴充。

  4.Inheritances

  每一個類都可以繼承自另一個基類,當一個類繼承基類時此類將載入基類中的方法,屬性,事件等,同時可以重寫基類中的方法,事件等或直接調用基類中方法等,Asp.Net Ajax中也實現了這項功能。

  5.Interfaces

  介面知識一種約定,並沒有實現方法,同樣在Asp.Net Ajax中也有介面,其實就是定義一個空函數。

  6.Enumerations

  通過Type.registerEnum方法可以註冊一個枚舉,它主要是更直觀的表達一個對象。

  7.Reflection

  使用反射可以知道類中的資訊,對Type進行擴充,提供APIs對類進行分析,從而得到類中的資訊。

  今天先對JavaScript Microsoft Ajax Library(我比較喜歡叫他Microsoft Ajax指令碼庫)有一個總體上的認識,第一碰這個東西可能很多理解都是歪理,如果人總是從不懂到懂,逐漸深入也總是需要一個過程。就像當年我對Class怎麼也不理解(因為我是在沒有人指導的情況下,自己研究起來的,生物工程就是我的專業-中國十大騙人專業之一,由於沒有注意現在畢業證還寄在學校呢?),希望我對Ajax也能一步一步的弄懂它,如果有不對的地方還請批評指教。

相關文章

聯繫我們

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