网语飘飘.Net/Delphi攻坚战

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

ZeroAjax框架1.0

1.这样做的原因
在Asp.net的开发过程中,类似window的开发模式让我非常便捷的创建Web的项目,开发效率得到很大提高
而我们需要为此付出那些代价呢
网页频繁的刷新和产生数量庞大的ViewState,造成快速的开发的系统在效率上有些缺失。
我们一般采用的方式是尽可能少的使用ASP.NET的标准服务端控件或在客户端书写大量的
代码来解决,这样我们对ASP.NET所提供的开发的便捷性缺会损失很多..
2.框架中我们想解决的问题
   2.1   在开发过程中,不使用提供的ViewState机制,但可以利用ASP.NET服务端控件的开发便捷性的优势... 
   2.2   客户端和服务端的方便访问,这里的方式类似(AJAX.NET),我们可以在客户端访问服务端的
          方法,传递参数和返回参数等...
   2.3   对使用现有的开发方式不变的情况下,把提交的PostBack模式替换为异步调用模式,
          这样的就可以解决频繁刷新页面造成的不太舒服的用户体验.
   2.4   我们可以制定在每次提交过程成需要更改局部的UI,这样在交互过程中实现了,尽可能少的
         传递客户端和服务器的交互的数据..
   2.5  对现有的控件,提供一个接口可以比较方便的把现有的asp.net控件升级为具有Ajax能力的控件.
         这里的控件也包含我们所开发的第三方控件..
   2.6 对现有的Asp.net的开发习惯最大可能的不做变化,使用上还和postback模式类似.


客户端与服务器代码回调

1.我们展示如何在客户端调用Server端的方法以及客户端对Server端的数据交互操作,首先我们来看一个如何在客户端
获取服务端的时间 查看源码
2.在这里我们做的工作首先需要设定该Page的基类为系统产生的基页类如下
public class SimpleDemo1 : ZeroAjax.BasePage
3.接下来我们需要设置服务端处理的方法,方法默认需要设置为Public方式,在方法中需要添加
特性 [ZeroAjax.ZeroMethod()]如下所示,这里的使用方法类似Ajax.net的使用.

[ZeroAjax.ZeroMethod()]
public string GetServerTime()
{
    return System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}

4.接下来我们查看在客户端如何访问
这里我们可以在客户端调用这样的一个方法来调用我们刚才建立的方法

<script language="javascript">
function getTime()
{
    var time = GetServerTime();//在这里我们调用刚才建立的方法
    document.getElementById("TextBox1").value = time;
}
</SCRIPT>

5.在这里我们展示了两种方式,一种直接调用Server端的方法获取服务器时间
另一种方式采用了Ajax控件的方式来实现这个功能(代码如下 我们会在后面的演示中详细来说)

private void AjaxButton1_Click(object sender, System.EventArgs e)
{
this.TextBox2.Text =System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}



属性声明演示

1.我们展示如何在客户端调用Server端的定义的属性如何可以在Client端修改使用,类似我们在Asp.net使用的
ViewState来存储属性的值的效果,在Server端的书写方式类似对方法的声明,如下所示
因在Js变量的设置比较灵活所以,最好服务器和客户端的id不要一样,对于使用的细节我们可以查看源码
[ZeroAjax.ZeroProperty()]
  public string TestID
   { 
      get { return _id;}
      set {_id= value;}
  }





posted on 2006-01-05 16:33  网语飘飘  阅读(367)  评论(0)    收藏  举报