AJAX技术(.net篇)

        最近听说了AJAX技术的问世,让用B/S开发的应用程序有了新的用户观感 (好奇!)!于是特地去了新华书店看了看这方面的书,虽然2005刚刚提出的一个新词汇----AJAX,但这方面的书还挺多,这就是IT,总是迅雷不及眼耳!这就是IT人,总要不断的学习!看了看这方面的书,感觉真的不错,于是,回来就在自己的机子上搞了一个小小的例子,与有兴趣者分享一下!

        不扯那么远了,Ajax定义为“Asynchronous JavaScript + XML”的简称,也就是异步的JavaScriptXML处理。从原理上看,主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯,并最终在网页中实现丰富友好的用户界面.不错,异步通讯--关键之所在!当然对JavaScript也应有一定的功底!我个人认为它是程序设计中的一个经典之处!

   由于Ajax技术是在客户端(浏览器)与服务器之间加了一个称之为AJAX引擎的功能,才得以实现异步!所以它需要引用一个叫Ajax.dll的文件,可以去网上将它下载下来.然后Ajax.dll copy到应用系统bin目录下,然后在工程引用中引用Ajax.dll.

   OK, 现在我们开始写了,
   一. 首先要在web.config中添加如一段话:  

  < httpHandlers >
  
< add  verb ="POST,GET"  path ="ajax/*.ashx"  type ="Ajax.PageHandlerFactory, Ajax"   />
</ httpHandlers >

.net 2005版的就不用这一步了.

意思是所有的 ajaxpro/*.ashx 请求都由 Ajax.PageHandlerFactory 处理,而不是由默认的 System.Web.UI.PageHandlerFactory 处理程序工厂来处理。

二、这时我在项目里新建二个页面AjaxForm1.aspx、AjaxMothed.aspx;

其中AjaxForm1.aspx的前台的设计很简练,其中包括必要的JavaScript语句,代码如下:

<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="AjaxForm1.aspx.cs" Inherits="MyDemo.AjaxForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<input id="Button1" type="button" value="获得服务器时间"
οnclick="getServerTime();" />

<input id="Text1" type="text" />

<input id="Text2" type="text" />

<input id="Button2" type="button" value="得到两个文本框的和
" οnclick="add(document.getElementById('Text1').value,
document.getElementById('Text2').value)" />
</div></form>

<script type="text/javascript">

function getServerTime()

{

//MyDemo.AjaxMothed.GetServerTime()得到从服务器传来的数据是object,要写.value

alert(MyDemo.AjaxMothed.GetServerTime().value);

}

function add(a,b)

{

//把文本框的值转换成int

var a1 = parseInt(a);

var b1 = parseInt(b);

//第1、2参数为服务器方法所需要的参数,后面一个是如果服务器返回数据

//客户端要处理这些数据的js函数名,他有个参数就是从服务器传来的数据

MyDemo.AjaxMothed.AddTwo(a1,b1,getAdd);

}

function getAdd(rel)

{

//要加上.value

alert(rel.value);

}

</script>

</body>

</html>

后台AjaxForm1.aspx.cs代码:
 
using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

namespace MyDemo

{

public partial class AjaxForm1: System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxForm1));
//这句话是必要的,他是把AjaxMothed页面作为对象,以让AjaxForm1的前台访问
//AjaxMothed的后台函数,达到利用javascript 操作后台的目的!
}
 }

}

三、AjaxMethod.aspx.cs里的方法为:

[AjaxPro.AjaxMethod]//每个函数前都必须有这个引用。

public DateTime GetServerTime()

{

return DateTime.Now;

}

[AjaxPro.AjaxMethod]

public int AddTwo(int firstInt, int secondInt)

{

return firstInt + secondInt;

}

这样代码我们就设计完了,此时前台就可神不知鬼不觉的访问后台,后台在将处理后的数据返回给

前台,达到不刷新整个页面的目的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值