北京交通大学专业硕士学位论文 相关理论与技术
响应,而不阻塞用户[19]。使用这个对象JavaScript可在不重载页面的情况与 Web 服务器交换数据,AJAX在Web服务器和浏览器之间传输数据时异步的,通过这样每次可以从服务器获取少量的信息,而不是整个页面,从而带来页面无刷新的效果。AJAX与传统的Web请求相比如图2-5所示:
图2-5 AJAX与传统Web对比
Fig.2-5 Contrast between AJAX and Web
AJAX与传统的Web请求相比,因其可使因特网应用程序更小、更快,更友好等特点。综上所述,AJAX的优点可以归纳为以下几点[20]:
(1)页面无刷新,通过在浏览器页面的内部与服务器之间进行通信,这样给用户的使用体验很好。
(2)因为AJAX是浏览器与服务器之间的交互式一步的,所以用户的操作不会被打断,因此响应的速度会更快。
(3)通过AJAX,服务器端的一些功能利用客户端的一些闲置的能力可以处理这样就减轻了服务器端的压力,AJAX以“按需取数据”为原则在减少冗余请求方面最大程度的减少,在减少对服务器端负担方面也最大程度的减少。
(3)基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。 平时,大多在意的都是AJAX给软件开发者带来的好处,例如:用户体验的提升,而AJAX给软件开发者带来的一些劣势,也不容小视,AJAX所具有的一些劣势如下所示:
(1)AJAX影响“后退”按钮的功能,对浏览器后退机制有所破坏。后退按钮是一个标准的Web站点的重要功能,但是它没法和JavaScript进行很好的合作。
13
北京交通大学专业硕士学位论文 相关理论与技术
用过Gmail的知道,Gmail下面采用的AJAX技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变AJAX的机制,它只是采用的一个比较慢,但是有效的办法,即用户想点击按钮查看以前的访问记录时,通过使用或者创建一个隐蔽的IFRAME来实现以上的功能。
但是,虽然说这个问题是可以解决的,但它所带来的开发成本是非常高的,和AJAX框架所要求的快速开发是相背的。这是AJAX带来的一个非常严重问题。
(2)安全问题, 使用AJAX技术的企业,很容易向外界建立一个数据通道。这样就会使开发人员在开发的过程中不经意向外界暴露出和以前相比多很多的数据和逻辑服务。
AJAX可以躲过客户端的安全扫描技术,这样就使黑客很容易在服务器端建立攻击。另外AJAX也存在一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击等。
(3)对搜索引擎的支持不是很好。 (4)对程序的异常机制起到了不好的影响。
(5)另外,AJAX也存在一些其他方面的问题,例如和URL和资源定位的初衷是相互背离的。
例如,一个URL(Uniform / Universal Resource Locator,统一资源定位符)地址,如果采用了AJAX技术,但是看到的URL地址的内容和原先是不一样的。
(6)在手机的浏览器上打开采用AJAX技术的网站时,它目前是不支持的,这说明在现在的一些手持设备上面不是很支持AJAX技术。
2.4.3 JQuery
JQuery是实质上是一个JavaScript框架。它是轻量级的JavaScript库,它兼容CSS3,还兼容各种浏览器例如:IE 6.0+,Safari 2.0+,Opera 9.0+等。JQuery使用户能更方便地处理HTML Documents、Events、实现动画效果,并且方便地为网站提供AJAX交互[21]。
JQuery能够使用户的HTML页,保持代码和HTML内容分离,也就是说,不用再在HTML里面插入一堆JavaScript来调用命令了,只需定义id即可,JQuery因其“用最少的代码,实现最多的功能”的原则[22],在ASP.NET页面不用写很多复杂的JavaScript代码,也可以实现很多页面的特效。
JQuery提供了非常详细的API来帮助项目开发者学习JQuery,JQuery的结构如2-6图所示:
14
北京交通大学专业硕士学位论文 相关理论与技术
图2-6 JQuery结构 Fig.2-6 Structure of JQuery
如图2-6所示,可以在JQuery提供的中文API帮助文档中,学习Jquery的选择器、属性、事件等的所有语法,这个API为学习JQuery带来了极大地方便。JQuery虽然功能强大,但也有其优点与缺点,下面将简单的介绍一些JQuery的优缺点,JQuery优点简单的列举几个如下:
(1)JQuery实现脚本与页面的分离
在HTML页面中,经常看到这样的代码: