文档介绍:
通过 ajax.dll 实现 Ajax 的开发本页内容为: 通过 ajax.dll 实现 Ajax 的开发, 该文章本站转载自网络,如有侵权请告之,我们将会及时将其删除,其正文内容如下: Asynchronous JavaScript and XML ( AJAX )最近掀起的高潮,要完全归功于 Google 在 Google Suggest 和 Google Maps 中的使用。对 而言, AJAX 不需要回传就能进行服务器端处理, 从而使客户机( 浏览器) 具有丰富的服务器端能力。换句话说, 它为异步指派和处理请求与服务器响应提供了一个框架。 AJAX 利用了一些不是很新颖的已有技术,但是对这些技术(加到一起就是 AJAX )的爱好最近突然升温。请尝试 Michael Schwarz 的 AJAX .NET 包装器,通过它 开发人员可以快速方便的部署很容易利用 AJAX 功能的页面。需要注意的是,这个包装器处于初期开发阶段,因此还没有完全成熟。它是如何工作的——概述 AJAX 依靠代理( broker ) 指派和处理往返服务器的请求。对此, .NE T 包装器依靠客户端 XmlHttpRequest 对象。多数浏览器都支持 XmlHttpRequest 对象,这就是选择它的原因。因为包装器的目的是隐藏 XmlHttpRequest 的实现,我们就不再详细讨论它了。包装器本身通过将.NE T 函数标记为 AJA X 方法来工作。标记之后, AJA X 就创建对应的 JavaScript 函数, 这些函数( 和任何 JavaScript 函数一样)作为代理可以在客户端使用 XmlHttpRequest 调用。这些代理再映射回服务器端函数。复杂吗?并不复杂。我们来看一个例子。假设有一个.NET 函数: ublic int Add(int firstNumber, int secondNumber) { return firstNumber + secondNumber; } AJAX .NET 包装器将自动创建名为“ Add ”、带有两个参数的 JavaScript 函数。使用 JavaScript (在客户机上)调用该函数时, 请求将传递给服务器并把结果返回给客户机。初始设置我们首先介绍“安装”项目中使用的.dll 的步骤。如果您很清楚如何添加.dll 文件引用,可以跳过这一节。首先,如果还没有的话,请下载最新的 AJAX 版本。解压下载的文件并把 ajax.dll 放到项目的引用文件夹中。在 Visual 中有机 Solution Explorer 的“ References (引用) ”节点并选择 Add Reference (添加引用) 。在打开的对话框中,单击 Browse (浏览) 并找到 ref/ajax.dll 文件。依次单击 Open (打开)和 Ok (确认)。这样就可以用 AJAX .NET 包装器编程了。建立 HttpHandler 为了保证正常工作,第一步是在 web.config 中设置包装器的 HttpHandler 。不需要详细解释 HttpHandlers 是什么及其如何工作, 只要知道它们用于处理 请求就足够了。比如,所有*.asp x 页面请求都由 System.Web.UI.PageHandlerFactory 类处理。类似的, 我们让所有对 ajax/*.ashx 的请求由 Ajax.PageHandlerFactory 处理: 〈 configuration> 〈 system.web> 〈 httpHandlers> 〈 add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> 〈/httpHandlers> 〈 system.web> 〈/configuration> 简言之,上面的代码告诉 ,和指定路径( ajax/*.ashx )匹配的任何请求都由 Ajax.PageHandlerFactory 而不是默认处理程序工厂来处理。不需要创建 ajax 子目录,使用这个神秘的目录只是为了让其他 HttpHandler s 能够在自己建立的子目录中使用.ash x 扩展。建立页面现在我们可以开始编码了。创建一个新页面或者打开已有的页面,在 file 后的代码中,为 Page_Load 事件添加以下代码: public class Index : System.Web.UI.Page{ private void Page_Load(object sender, EventArgs e){ Ajax.Utility.RegisterTypeForAjax(typeof(Index)); // } // } 调用 RegisterTypeForAjax 将在页面上引发后面的 JavaScript (或者在页面中手工加入以下两行代码): 〈 script language="javascript" src="mon.ashx"> 〈/script> 〈 script language="javascript" src="ajax/Namespace.PageClass,AssemblyName.ashx"> 〈/script> 其中最后一行的含义是: Namespace.PageClass ——当前页面的名称空间和类(通常是@Pag e 指令中 Inherits 属性的值) AssemblyName ——当前页面所属程序集的名称(通常就是项目名) 下面是 AjaxPlay 项目中 sample.aspx 页面的结果例子: 〈%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" %> 〈 html> 〈 head> 〈 script language="javascript" src="mon.ashx"> 〈/script> 〈 script language="javascript" src="ajax/AjaxPlay.Sample,AjaxPlay.ashx"> 〈/script> 〈/head> 〈 body> 〈 form id="Form1" method="post" runat="server"> 〈/form> 〈/body> 〈/html> 可以在浏览器中手工导航到 src 路径(查看源代码,复制粘贴路径) 检查是否一切正常。如果两个路径都输出一些( 似乎) 毫无意义的文本, 就万事大吉了。如果什么也没输出或者出现 错误, 则表明有些地方出现问题。即便不知道 HttpHandlers 如何工作,上面的例子也很容易理解。通过 web.config ,我们已经保证所有对 ajax/*.ashx 的请求都由自定义的处理程序处理。显然, 这里的两个脚本标签将由自定义的处理程序处理。创建服务器端函数现在来创建可从客户端调用中异步访问的服务器端
1
内容来自淘豆网转载请标明出处.