预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ASP.NETWeb应用程序的简单AJAX实现 提要本文描述了使用一种简单的方式来实现在ASP.NETweb应用程序中加入AJAX功能。一、简介本文描述了一种简单的方式来实现在ASP.NETweb应用程序中加入AJAX功能。我们还将讨论使用AJAX的优缺点。为了说明问题,本文还提供了一些可用的JavaScript和C#.NET代码。二、为什么使用AJAX大多数读者可能已经知道,AJAX代表了异步JavaScript+XML。这种技术首先由微软在1999年引入,并以"使用远程调用的DHTML/JavaScriptweb应用程序"著称。这一技术的基本思想是,允许一个互联网浏览器向一个远程页面/服务作异步的HTTP调用,并且用收到的结果更新一个当前web页面而不必刷新整个页面。根据这种技术创建者的意见,这种技术应能够改进客户端的体验-使得HTTP页面外观与使用感觉很类似于Windows桌面应用程序。因为这种技术的核心实现是基于互联网浏览器功能,所以其用途在当时是很有限的。但是,几年过去了,随着新一代浏览器的支持和大量的应用实践(例如Google,Amazon.com,eBay等),这种技术已经重新焕发生机。今天,它以AJAX著名,被作为任何提供高级用户体验的动态页面的自然的构成部分。三、方案描述在本文中我们所推荐的方案尽管很简单,然而却十分有效地实现了AJAX功能。这个程序很容易维护和修改,不要求开发者具备任何特别的技巧;而且,根据我们的经验,它还是跨浏览器兼容的。基本上,一个常规的类似AJAX的实现包括两个主要组成部分:一个使用JavaScript代码进行AJAX调用并接收响应的客户端HTML页面;一个远程页面-它能够接收一个请求并对请求的信息加以响应。在客户端页面中的JavaScript代码负责实例化一个XmlHttp对象,然后提供给这个对象一个回调方法-它负责处理收到的信息,最后把请求经由XmlHttp对象发送到远程页面。所有这些都是通过JavaScript代码来实现的。我们的方法主要是针对于ASP.NET应用程序中的应用,并且考虑下列可能的情形:·AJAX调用可以发生于web应用程序的不同的ASP.NET页面上甚至是远程页面上;·一远程页面URL可能包含动态计算的参数,并且可能在ASP.NET页面的code-behind处构建一个URL字符串更为方便些;·在更新一个HTML页面之前,一个远程页面可能响应于一个复杂的数据分析要求;·一远程页面可能或者是一个外部的第三方页面,或者是该Web应用程序自己的页面或服务。所有的这些考虑都显示在下图中: 四、实现(一)基本AJAXJavaScript方法我把所有的JavaScript方法分成两部分:调用页面特定的JavaScript方法,和通用于所有调用页面的AJAXJavaScript方法。特定的方法还包括一个回调函数,由于它负责更新页面内容。通用的AJAX方法负责实例化一个XmlHttp对象并向远程页面发送异步请求。得到一个XmlHttp对象的过程因浏览器的不同而有所不同。我把它们区分为两种不同的基本类型:微软浏览器(IE家族之一)和Mozilla浏览器(它是指MozillaFirefox,Netscape,或Safari之一)。我还在Opera浏览器上测试了本文中的代码,但是我不可能保证它会一直工作良好。 functionGetXmlHttpObject(handler){varobjXmlHttp=null;if(!window.XMLHttpRequest){//微软objXmlHttp=GetMSXmlHttp();if(objXmlHttp!=null){objXmlHttp.onreadystatechange=handler;}}else{//Mozilla|Netscape|SafariobjXmlHttp=newXMLHttpRequest();if(objXmlHttp!=null){objXmlHttp.onload=handler;objXmlHttp.onerror=handler;}}returnobjXmlHttp;}functionGetMSXmlHttp(){varxmlHttp=null;varclsids=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP.2.6","Microsoft.XMLHTTP.1.0","Microsoft.XMLHTTP.1","Microsoft.XMLHTTP"];for(vari=0;i<clsids.length&&xmlHttp==null;i++){xml