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

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

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

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

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

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

基于AJAX的高级Web应用程序开发技术研究 - 1AJAX简介1.1AJAX定义异步javascript和XML(Asynchronousjavascriptand,XML,AJAX)是多种技术的综合,包括javascript,XHTML和CSS,DOM,XML和XSTL,XMLHttpRequest。其特点是:使用XHTML和CSS标准化呈现;使用DOM实现动态显示和交互;使用XML和XSTL进行数据交换与处理;使用XMLHttpRequest进行异步数据读取;最后用javascript绑定和处理所有数据。1.2AJAX的工作原理与传统的Web应用不同,AJAX采用异步交互过程。AJAX在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理-等待-处理-等待的缺点。用户的浏览器在执行任务时即装载了AJAX引擎。AJAX引擎主要用javascript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。AJAX引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。现在,可以用javascript调用AJAX引擎来代替产生一个直接的HTTP请求的用户动作,内存中的数据编辑、数据校验这些不需要重新载入整个页面的需求可以交给AJAX执行。AJAX最核心的理念是,传统应用中的浏览器直接与服务器交互,现在中间夹了一层Script。也就是说,原来的Browser-Server架构,现在是Browser-Ajax引擎Server。假如是纯粹的AJAX应用,浏览器只向AJAX引擎发送消息,AJAX引擎使用XmlHttpRequest向服务器发送请求,然后服务器在XmlHttpRequest的回复中带上相关消息,最后AJAX引擎分析这些消息,用HTMLDOM模型处理界面。如此,理论上可以完全消除按页刷新的需要。由于存在这样一个在后台的通信机制,原有开发Web程序时碰到的问题自然内部迎刃而解。最重要的是,使用了AJAX框架不会与原有开发模型相冲突,如果处理得当AJAX的优势将显而易见,加上兼容性,一定会使它有机会在Web领域中占一席之地。1.3AJAX的优点与传统的Web服务相比,AJAX具有明显的优势:减轻了服务器的负担。因为AJAX的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响应对服务器造成的负担;非整页地刷新、更新页面,减少用户实际和心理等待时间;更好的用户体验;也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本;可以异步调用外部数据;其是基于标准化的并被广泛支持的技术,并且不需要插件或下载小程序;AJAX使Web中的界面与应用分离,也可以说是数据与呈现分离;对于用户和ISP来说是双赢的。2AJAX技术的高级应用研究2.1AJAX语言对象面向的javascript由定义来看,javascript是典型的AJAX语言。不同于Java,javascript并不强调OO风格的编码。然而,javascript居然全面支持所有OO语言的主要属性,即封装、继承和多态性。数据类型:在Java中,一个类定义了一个数据及与它相关行为的组合。尽管javascript保留了class关键字,但是它不支持与常规OOP语言一样的语义。在javascript中,对象是用函数来定义的。事实上,通过在下面的示例中定义一个函数,就定义了一个简单的空类Calculator:functionCalculator(){}一个新实例的创建与在Java中相同使用new操作符:varmyCalculator=newCalculator();上面函数不仅定义一个类,而且还担当一个构造器。在此,操作符new实现了实例化一个类Calculator的对象,并且返回一个对象参考而不是只调用该函数。创建这样的空类在实际中并没有多大用处。下面,使用一个Java-脚本原型结构填充类定义。javascript使用原型当作创建对象的模板。所有的原型属性和方法都被参考引用复制到一个类的每个对象中,所以它们都具有相同的值。使用者可以改变一个对象中原型属性的值,并且该新值会覆盖从原型中复制过来的缺省值,但是这仅对于在一个实例中。下列语句将把一个新属性添加到Calculator对象的原型上:Calculator.prototype._prop=0;既然javascript并没有提供一个方法来从句法上表示一个类定义,故将使用with语句来标记该类的定义边界。这也将使得示例代码更为短小,因为该with语句被允许在一个指定对象上执行一系列的语句而不需要限制属性。functionCalculator(){};with(Calculator){prototype._prop