[ASP.NET AJAX]類似.NET框架的JavaScript擴展

最近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也能一步一步的弄懂它,如果有不對的地方還請批評指教。


本文轉自網魂小兵博客園博客,原文鏈接:http://www.cnblogs.com/xdotnet/archive/2006/12/22/aspnet_ajax_javascript_extend.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453686.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 連接 指定字符集_關于Mysql連接池配置指定字符集的問題

問題是這樣的,我在寫一個網站,打算使用連接池。我使用J2EE開發,開始使用的是直連的方式,附上代碼public class ConnDb {private String getDriver "com.mysql.jdbc.Driver";private String getUrl "jdbc:mysql:/…

【原】iOS:手把手教你發布代碼到CocoaPods(Trunk方式)

概述 關于CocoaPods的介紹不在本文的主題范圍內,如果你是iOS開發者卻不知道CocoaPods,那可能要面壁30秒了。直奔主題,這篇文章主要介紹如果把你的代碼發布到CocoaPods代碼庫中,讓別人可以使用“pod search yourOpenProject”命令查…

kafka tool 查看指定group下topic的堆積數量_ELK架構下利用Kafka Group實現Logstash的高可用...

系統運維的過程中,每一個細節都值得我們關注下圖為我們的基本日志處理架構所有日志由Rsyslog或者Filebeat收集,然后傳輸給Kafka,Logstash作為Consumer消費Kafka里邊的數據,分別寫入Elasticsearch和Hadoop,最后使用Kiba…

jquery flot pie畫餅圖

具體效果如下&#xff1a; 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> 5 <title>Insert title here</title> 6 <script language"javas…

研發管理:產品研發團隊的早會

百度百科定義:研發管理就是在研發體系結構設計和各種管理理論基礎之上&#xff0c;借助信息平臺對研發過程中進行的團隊建設、流程設計、績效管理、風險管理、成本管理、項目管理和知識管理等的一系列協調活動。[詳細] 產品研發團隊在履行各種產品研發過程中&#xff0c;從大的…

mysql fetch rows_差異mysql_fetch_array()和mysql_fetch_rows()函數_mysql

區別mysql_fetch_array()和mysql_fetch_rows()函數form:http://www.uphtm.com/php/254.html如果我們不仔細看會發現象mysql_fetch_array()和mysql_fetch_rows()函數沒有什么區別&#xff0c;但是細細的看你會發現它們區別還是蠻大了&#xff0c;如果各位對于此函數的區別不了解…

Linux 狀態命令之網絡狀態 iftop - 查看實時帶寬流量

簡介 Linux 中查看網卡流量工具有 iptraf、iftop 以及 nethogs 等&#xff0c;iftop 可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示端口信息等。 安裝 CentOS yum 方式 # 安裝依賴 yum install flex byacc libpcap ncurses ncurses-devel libpcap-develyum …

Spring Boot 使用常見問題

Json格式化時間&#xff0c;時區設置 spring.jackson.time-zoneGMT8 spring.jackson.date-formatyyyy-MM-dd HH:mm:ss json數據無法序列化到RequestBody對象中 SpringMVC restful 注解之RequestBody進行json與object轉換 轉載于:https://www.cnblogs.com/tonyq/p/7890497.html

Angular15 利用ng2-file-upload實現文件上傳

待更新 轉載于:https://www.cnblogs.com/NeverCtrl-C/p/8279246.html

解讀設計模式----簡單工廠模式(SimpleFactory Pattern),你要什么我就給你什么

本文首發于博客園,地址:http://www.cnblogs.com/beniao/archive/2008/08/09/1263318.html 一、模式概述 從設計模式的類型上來說&#xff0c;簡單工廠模式是屬于創建型模式&#xff0c;又叫做靜態工廠方法&#xff08;Static Factory Method&#xff09;模式&#xff0c;但不屬…

Memcached常用操作

memcached是一個高性能的、分布式內存對象緩存系統&#xff0c;應用廣泛。 通過緩存數據庫查詢結果&#xff0c;減少數據庫訪問次數&#xff0c;以提高動態Web應用的速度、 提高可擴展性。 它可以應對任意多個連接&#xff0c;使用非阻塞的網絡IO。由于它的工作機制是在內存中開…

android自定義金額輸入鍵盤_Android 自定義控件 - 仿支付寶數字鍵盤

原標題&#xff1a;Android 自定義控件 - 仿支付寶數字鍵盤簡介在一些帶有支付功能的 App 中&#xff0c;輸入的密碼一般只能是純數字&#xff0c;雖然我們可以指定 EditText 輸入框只能輸入數字&#xff0c;但是為了提供用戶的使用體驗&#xff0c;我們往往更傾向于使用自定義…

博客目錄(python相關)

python 相關 文件格式相關系列 Python 第三方模塊之 beautifulsoup&#xff08;bs4&#xff09;- 解析 HTML Python 第三方模塊之 ElementTree&#xff08;ET&#xff09;- 解析XML文件 Python 第三方模塊之 lxml - 解析 HTML 和 XML 文件 python 第三方模塊 yaml - 處理 …

項目主體思索

1&#xff1a;分布式定義; 2&#xff1a;SSO集成方式 3&#xff1a;menu動態菜單的添加 4&#xff1a;tag頁面展示; 5&#xff1a;tiles的jsp復用&#xff1b; 暫時就想到這些了&#xff0c;以后繼續補充。轉載于:https://www.cnblogs.com/siyan/p/8286738.html

centos mysql pid_centos7 mysql The server quit without updating PID file(錯誤解決)

1 問題[rootlocalhost mysql]# /etc/rc.d/init.d/mysql statusMySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED][rootlocalhost mysql]# /etc/rc.d/init.d/mysql startStarting MySQL...The server quit without updating PID file (/usr/local/mysql/dat…

tfs文件系統之NS配置管理

NameServer簡稱NS 充當著客戶與DS的交互橋梁 1.NS配置文件修改&#xff1a; [public] #log file size default 1GB log_size1073741824 #log file num default 64 log_num 64 #log file level default debug log_leveldebug #main queue size default 10240 task_max_queue_…

插件式架構設計實踐:插件式系統架構設計簡介

本系列博文將使用微軟RIA技術解決方案Silverlight以及擴展性管理框架Managed Extensibility Framework&#xff08;MEF&#xff09;&#xff0c;以插件式架構設計為導線&#xff0c;分享本人在從事基于微軟Silverlight技術構建的RIA系統中實施插件式系統架構設計的相關技術和經…

第十章 動態選路協議

RIP 缺陷&#xff1a; Routing Information Protocol RIP沒有子網的概念在路由器或鏈路發生故障后&#xff0c;需要很長的一段時間才能穩定下來采用跳數作為路由度量忽略了其他一些應該考慮的因素度量最大值為15則限制了可以使用RIP的網絡的大小OSPF Open Shortest Path First …

五種方式讓你在java中讀取properties文件內容不再是難題

2019獨角獸企業重金招聘Python工程師標準>>> 方式1.通過context:property-placeholder加載配置文件jdbc.properties中的內容 <context:property-placeholder location"classpath:jdbc.properties" ignore-unresolvable"true"/> 上面的配置…

hive metastore mysql_Hive MetaStore的結構

本篇主要是介紹Hive在MySQL中存儲的源數據的表結構。Hive MetaStore 數據庫表結構圖test.pngTBLS記錄數據表的信息字段解釋TBL_ID在hive中創建表的時候自動生成的一個id&#xff0c;用來表示&#xff0c;主鍵CREATE_TIME創建的數據表的時間&#xff0c;使用的是時間戳DBS_ID這個…