龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

剖析ASP.NET AJAX的面向对象思想

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
人们期待已久的ASP.NET AJAX v1.0正式版终于发布了。现在你能用Microsoft ASP.NET AJAX的javascript很容易的写出丰富的、交互式的web应用。尤其值得关注的是Microsoft AJAX Library增加了面向对象的支

人们期待已久的ASP.NET AJAX v1.0正式版终于发布了。现在你能用Microsoft ASP.NET AJAX的javascript很容易的写出丰富的、交互式的web应用。尤其值得关注的是Microsoft AJAX Library增加了面向对象的支持,而以前javascript是不支持面向对象开发的。现在icrosoft AJAX Library能很好的支持类、名字空间、继承、接口、枚举、反射等特征。这些新增加的功能类似于.NET Framework,这使得开发ASP.NET AJAX应用变得容易维护,容易扩充。现在我们看看Microsoft AJAX Library是如何支持以上特征的。

1.类、成员和名字空间

在Microsoft AJAX Library中,所有的JavaScript类都继承自object(类似于.NET Framework库,都继承自object),在ASP.NET AJAX应用中你可以运用面向对象的编程模式创建继承自Microsoft AJAX基类的对象和组件,类有四种成员:字段、属性、方法、事件。字段和属性是名/值对,用于描述一个类的一个实例的特性的。字段是由简单类型构成且可直接访问,例如:

myClassInstance.name="Fred"。

属性可以是任何简单类型或引用类型,通过get和set方法访问。在ASP.NET AJAX中,get和set是独立的函数,并规定在函数名中使用前缀"get_" 或 "set_" ,例如要获取或设置cancel属性的值时,你可以调用get_cancel或set_cancel方法。

一个方法是完成一个活动的函数而不是返回一个属性的值。属性和方法在下面的例子里都有示范。

事件指示特指的动作发生。当一个事件发生时,它可以调用一个或多个函数。事件所有者可以完成等待事件发生的任何任务。

名字空间是对关联类的逻辑分组。名字空间使你可以对公共功能进行分组。

为了使ASP.NET Web页面具有ASP.NET AJAX功能,你必须添加控件到页面上,当页面启动时,参照ASP.NET AJAX库的脚本自动产生。

下面的例子显示了页面使用了控件。

  

      < asp:ScriptManager runat="server" ID="scriptManager" />
  下面的例子演示了如何使用Type.registerNamespace和.registerClass方法来把Person类增加到Demo名字空间中、创建类然后注册类。

  

      Type.registerNamespace("Demo");

  Demo.Person = function(firstName, lastName, emailAddress) {

  this._firstName = firstName;

  this._lastName = lastName;

  this._emailAddress = emailAddress;

  }

  Demo.Person.prototype = {

  getFirstName: function() {

  return this._firstName;

  },

  getLastName: function() {

  return this._lastName;

  },

  getName: function() {

  return this._firstName + ' ' + this._lastName;

  },

  dispose: function() {

  alert('bye ' + this.getName());

  }

  }

  Demo.Person.registerClass('Demo.Person', null, Sys.IDisposable);

在脚本文件Namespace.js中定义了类Person,制定了类的名字空间为"Demo"。运行页面Namespace.aspx,点击按钮将创建一个Demo.Person类的实例。


收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接