AJAX技术(.net篇)

80酷酷网    80kuku.com

  ajax

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

        不扯那么远了,Ajax定义为“Asynchronous JavaScript + XML”的简称,也就是异步的JavaScript和XML处理。从原理上看,主要是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="获得服务器时间"
/>

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

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

<input id="Button2" type="button" 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;

}


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

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


 



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: