论文部分内容阅读
摘要:介绍了Ajax的基本原理及其在Web应用程序开发中的优势,探讨了在开发Web应用程序过程中如何有效地通过Ajax降低网络负载和改善用户浏览体验等问题,为开发和研究Web应用开辟了新的思路。
关键词:Ajax; Web应用程序; XML
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)12-20ppp-0c
Ajax Basic Principle and Its Web Application Discussion
XU Ying-juan
(College of Computer and Communication project, Weifang University, Weifang 261061, China)
Abstract: This paper introduced the basic principle of Ajax and its advantage in Web application program development, discussed how to reduce network load and improvement user efficiently in development Web application program based on Ajax, opened up new way to develop and study Web application.
Key words: Ajax; Web application program; XML
1 引言
传统的Web应用程序是基于触发的事件驱动模式。详细地说,用户在请求服务器端的数据时必须通过在浏览器端窗体上定制用户请求信息并提交给服务器,服务器端接收到用户请求信息后触发相应的事件来处理该信息并将结果回传给客户端浏览器。这种事件驱动模式处理Web数据请求的能力是非常强大的,但是也存在一定的问题,那就是客户端往往不能即时得到服务器的响应,因此也经常无法给用户提供良好的浏览体验,成为制约Web应用软件开发的瓶颈。因此,关于页面的载入技术的研究也就成为Web应用程序设计的关键,然而这种状况一直没能彻底改变,直到Ajax技术的出现。AJAX提供与服务器异步通信的能力,几乎可以在用户没有觉察的情况下更新或者查询数据,同时服务器返回的数据通过AJAX更新用户界面(而不是刷新整个Web页面),这样不仅提高了服务器的响应灵敏度,同时也大大提升了用户体验。
2 Ajax的工作原理
Ajax是Asynchronous JavaScript And XML(异步JavaScript 和 XML)英文单词的缩写。它由一组蓬勃发展的技术组合而成,其核心技术是JavaScript、Document Object Model(简称DOM)、XMLHttpRequest和XML。AJAX的工作原理相当于在客户端和服务器之间加了一个中间层,即Ajax引擎[1]。这样,并不是所有的用户请求都提交给服务器,一些数据的验证和处理由Ajax自己来做,只有确实需要从服务器读取新数据时,才由客户端通过JavaScript调用Ajax引擎向服务器端发出Http请求,但它并不等待请求的响应,用户可以继续浏览或交互。当服务端的数据以XML形式返回时,Ajax引擎接收数据,并指定JavaScript函数来完成相应的处理或页面的更新,而不是刷新整个页面,—个中间层服务器程序,使用户操作与服务器响应异步化。这样就减轻了服务器的负担,提升了服务器的响应灵敏性,给用户良好的浏览体验。Ajax的基本工作原理如图1所示。
3 Ajax的优点
作为一种新的应用程序技术,Ajax具有如下优点:按需取数据从而减轻服务器的负担;无刷新更新页面,减少用户心理和实际的等待时间,带来更好的用户体验;较少的服务器端事件,可以把一些传统方式下由服务器负担的工作转移到客户端,利用客户端闲置的能力来处理数据,从而充分利用资源;可调用外部数据;基于标准化的并被广泛支持的技术[2],不需要下载插件或者小程序;进一步促进页面呈现和数据的分离。
4 利用Ajax从Web页中返回数据
对于简单数据,可以通过XMLHTTPRequest对象的open方法将需要请求的Web页的绝对路径作为参数,该路径后面可能连接有关的Get方法调用的数据。当调用成功返回后从该对象的responseText属性中将返回的单个数据提取出来。被请求的Web页中首先生成要返回的数据,这可以通过使用任何基于.NET Framework技术如继承等来实现;然后可以选择以下两种方式将数据返回到客户端:(1)在该页的load事件的处理方法中利用Response.Write()方法实现将数据返回;(2)利用render方法中的HtmlTextWriter对象Write方法返回。从而在浏览器端Web页中便实现简单数据的返回。
同样,用户可以利用客户端浏览器向服务器请求一些较为复杂的数据,例如数据表、结构体甚至业务对象等。只要服务器端将此类复杂数据序列化为XML格式数据,我们便可以通过在客户端XMLHTTPRequest对象的responseXML属性返回一个XMLDOC对象,此对象能够处理XML并将结果展示在客户端浏览器[3]。下列代码显示了如何将CLR用户定义类型序列化为XML格式并将其放入XML元素:
Sqlstring s=new sqlstring("0:0");
udtclientApp.point pnt=point.parse(s);
System.IO.memorystream writer=new system.IO.Memorystream();
System.xml.serialization.xmlserializer
serializer=new system.xml.serialization.xmlserializer(typeof(udtclientapp.point));
Serializer.serialize(writer,pnt);
Writer.seek(0,system.io.seekorigin.begin);
System.xml.xmldocument xmldoc=new system.xml.xmldocument();
Xmldoc.load(writer);
System.xml.xmlelement udtxml=xmldoc.documentelement;
以下代码是如何将XML反序列化回CLR用户自定义类型。代码如下:
Textreader reader=new string reader(udtxml.outerxml);
Pnt=(udtclientapp.point) serializer.deserialize(reader);
5 结束语
本文通过对Ajax的原理的分析提出如何有效的降低网络负载、改善用户体验等存在的问题。Ajax还很年轻,其本身还有许多的不足有待改进。随着Ajax应用的普及, 更多Web开发人员参与到Ajax框架的研究当中,相信不远的将来,Ajax必将成为Web开发中必不可少的一员。
参考文献:
[1] 游丽贞,等. Ajax引擎的原理和应用[J]. 微计算机信息,2006,(22):2-3.
[2] 杨国瑞, 张思博. 基于AJAX的Web应用架构设计[J]. 现代电子技术,2006,(15):24-26.
[3] 扎卡斯, 姆克皮克, 福西特. Ajax高级程序设计[M]. 北京:人民邮电出版社,2006:198-200.
收稿日期:2008-03-11
作者简介:徐英娟(1980-),女,山东昌邑人,助教,硕士,研究方向:计算机应用技术。
关键词:Ajax; Web应用程序; XML
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)12-20ppp-0c
Ajax Basic Principle and Its Web Application Discussion
XU Ying-juan
(College of Computer and Communication project, Weifang University, Weifang 261061, China)
Abstract: This paper introduced the basic principle of Ajax and its advantage in Web application program development, discussed how to reduce network load and improvement user efficiently in development Web application program based on Ajax, opened up new way to develop and study Web application.
Key words: Ajax; Web application program; XML
1 引言
传统的Web应用程序是基于触发的事件驱动模式。详细地说,用户在请求服务器端的数据时必须通过在浏览器端窗体上定制用户请求信息并提交给服务器,服务器端接收到用户请求信息后触发相应的事件来处理该信息并将结果回传给客户端浏览器。这种事件驱动模式处理Web数据请求的能力是非常强大的,但是也存在一定的问题,那就是客户端往往不能即时得到服务器的响应,因此也经常无法给用户提供良好的浏览体验,成为制约Web应用软件开发的瓶颈。因此,关于页面的载入技术的研究也就成为Web应用程序设计的关键,然而这种状况一直没能彻底改变,直到Ajax技术的出现。AJAX提供与服务器异步通信的能力,几乎可以在用户没有觉察的情况下更新或者查询数据,同时服务器返回的数据通过AJAX更新用户界面(而不是刷新整个Web页面),这样不仅提高了服务器的响应灵敏度,同时也大大提升了用户体验。
2 Ajax的工作原理
Ajax是Asynchronous JavaScript And XML(异步JavaScript 和 XML)英文单词的缩写。它由一组蓬勃发展的技术组合而成,其核心技术是JavaScript、Document Object Model(简称DOM)、XMLHttpRequest和XML。AJAX的工作原理相当于在客户端和服务器之间加了一个中间层,即Ajax引擎[1]。这样,并不是所有的用户请求都提交给服务器,一些数据的验证和处理由Ajax自己来做,只有确实需要从服务器读取新数据时,才由客户端通过JavaScript调用Ajax引擎向服务器端发出Http请求,但它并不等待请求的响应,用户可以继续浏览或交互。当服务端的数据以XML形式返回时,Ajax引擎接收数据,并指定JavaScript函数来完成相应的处理或页面的更新,而不是刷新整个页面,—个中间层服务器程序,使用户操作与服务器响应异步化。这样就减轻了服务器的负担,提升了服务器的响应灵敏性,给用户良好的浏览体验。Ajax的基本工作原理如图1所示。
3 Ajax的优点
作为一种新的应用程序技术,Ajax具有如下优点:按需取数据从而减轻服务器的负担;无刷新更新页面,减少用户心理和实际的等待时间,带来更好的用户体验;较少的服务器端事件,可以把一些传统方式下由服务器负担的工作转移到客户端,利用客户端闲置的能力来处理数据,从而充分利用资源;可调用外部数据;基于标准化的并被广泛支持的技术[2],不需要下载插件或者小程序;进一步促进页面呈现和数据的分离。
4 利用Ajax从Web页中返回数据
对于简单数据,可以通过XMLHTTPRequest对象的open方法将需要请求的Web页的绝对路径作为参数,该路径后面可能连接有关的Get方法调用的数据。当调用成功返回后从该对象的responseText属性中将返回的单个数据提取出来。被请求的Web页中首先生成要返回的数据,这可以通过使用任何基于.NET Framework技术如继承等来实现;然后可以选择以下两种方式将数据返回到客户端:(1)在该页的load事件的处理方法中利用Response.Write()方法实现将数据返回;(2)利用render方法中的HtmlTextWriter对象Write方法返回。从而在浏览器端Web页中便实现简单数据的返回。
同样,用户可以利用客户端浏览器向服务器请求一些较为复杂的数据,例如数据表、结构体甚至业务对象等。只要服务器端将此类复杂数据序列化为XML格式数据,我们便可以通过在客户端XMLHTTPRequest对象的responseXML属性返回一个XMLDOC对象,此对象能够处理XML并将结果展示在客户端浏览器[3]。下列代码显示了如何将CLR用户定义类型序列化为XML格式并将其放入XML元素:
Sqlstring s=new sqlstring("0:0");
udtclientApp.point pnt=point.parse(s);
System.IO.memorystream writer=new system.IO.Memorystream();
System.xml.serialization.xmlserializer
serializer=new system.xml.serialization.xmlserializer(typeof(udtclientapp.point));
Serializer.serialize(writer,pnt);
Writer.seek(0,system.io.seekorigin.begin);
System.xml.xmldocument xmldoc=new system.xml.xmldocument();
Xmldoc.load(writer);
System.xml.xmlelement udtxml=xmldoc.documentelement;
以下代码是如何将XML反序列化回CLR用户自定义类型。代码如下:
Textreader reader=new string reader(udtxml.outerxml);
Pnt=(udtclientapp.point) serializer.deserialize(reader);
5 结束语
本文通过对Ajax的原理的分析提出如何有效的降低网络负载、改善用户体验等存在的问题。Ajax还很年轻,其本身还有许多的不足有待改进。随着Ajax应用的普及, 更多Web开发人员参与到Ajax框架的研究当中,相信不远的将来,Ajax必将成为Web开发中必不可少的一员。
参考文献:
[1] 游丽贞,等. Ajax引擎的原理和应用[J]. 微计算机信息,2006,(22):2-3.
[2] 杨国瑞, 张思博. 基于AJAX的Web应用架构设计[J]. 现代电子技术,2006,(15):24-26.
[3] 扎卡斯, 姆克皮克, 福西特. Ajax高级程序设计[M]. 北京:人民邮电出版社,2006:198-200.
收稿日期:2008-03-11
作者简介:徐英娟(1980-),女,山东昌邑人,助教,硕士,研究方向:计算机应用技术。