Ajax技术在web应用与思考

2022-09-10

随着互联网技术的不断发展, Web应用成为当今关注的热点。对于用户来说需要更加流畅快捷的Web应用。Ajax技术的产生满足了用户的这种需求。由于Ajax技术存在的诸多优点和适应性, 越来越多的研究集中在web中应用Ajax技术, 以方便提高交互性和用户体验、提高服务器的有效吞吐量。但是随着Ajax技术在Web的应用, Ajax技术也带来了一系列包括安全问题在内的问题, 本文对Ajax技术在Web的应用进行了初步的探讨和分析。

1 Ajax技术在Web的应用研究现状与优缺点分析

Ajax技术是指一种创建交互式网页应用的网页开发技术。2005年美国研究者加勒特在论文中首次提到Ajax技术这个概念。Ajax技术不是一门新技术, 实际上它是由几种蓬勃发展的技术组合而成。这些技术包括JavascriPt、XHTML、CSS等技术。而Ajax技术的“新”体现在它综合运用这些技术的方式, 以及这些运用方式所带来的独特用户体验。谈到Ajax技术在Web的应用, 首先是Google公司把Ajax技术推向引领Web潮流的地位。其中公认最复杂的Ajax应用是Google Maps, Google Maps通过Ajax避免了对主页面重载, 同时让用户感觉不到需要的等待。Ajax的典型应用还有微软的windows Live等。此外国内一些大型的网站如新浪的Blog也采用了这方面的技术, 新浪的邮件系统也已经采用了Ajax技术。国内对Ajax技术的研究刚刚开始, Ajax技术极大减少了用户操作的响应时间, 改善了Web应用的可用性和用户的交互体验, 最终得到了用户的认可。

Ajax技术的优点是这种技术赋予客户端更多的处理能力, Ajax技术只请求所需要的数据, 所以Ajax技术可以节约了网络带宽。其次是Ajax技术减少用户心理和实际的等待时间, 使得交互性更强, 增强了用户界面友好性, 使web应用具有更好的效率。再次是这种基于标准化的技术, 不需要下载插件, 但应用场合广泛, 能满足绝大多数用户的应用需求。但同时我们不得不承认Ajax技术不是完美的技术。Ajax技术大量使用了JavascriPt和Ajax技术, 所以, 使用Ajax技术的web程序必须测试针对浏览器的兼容性。另外还有Ajax技术暴露了比以前更多的数据和服务器逻辑, 安全问题也凸显出来。

2 Ajax技术在Web的应用问题分析

2.1 按钮失效与浏览器的兼容性问题分析

首先是后退/前进按钮失效, 在传统的Web页面中, 用户经常使用的前进、后退按钮和书签功能都发挥着良好的作用。但Ajax技术应用使界面变得更加丰富, 破坏了Web的基本交互风格, 使其产生了前进/后退按钮失效的缺陷。目前的解决方法是Dojo在dojo.undo.brower包中提供的解决方案, 需要dojo.undo.brower.setlnitialstate (state) 来设定浏览器载入网页初始状态, 这个状态定义为两个响应函数backo和forwardo, 让它们分别在用户单击浏览器的后退和前进按钮时执行。

其次是浏览器的兼容性问题, Ajax大量使用了JavascriPt和Ajax技术, 这个取决于浏览器的兼容性, 不同的浏览器对于JavascriPt语言的支持程度也不相同, 所以在编写跨浏览器的客户端应用程序时也有一定困难。其中ASP.NETAJAX框架对这个问题提出了一个很好的解决方案, 其异步通信层允许浏览器使用JavascriPt调用位于服务器端的web Service方法, 将服务器端的业务层和数据层与客户端的表示层分开, 数据的生成和保存由服务器端业务层和数据层完成, 用户与数据之间的交互则有客户端表示层完成。

2.2 Ajax技术在Web的应用的安全性问题分析

由于Ajax技术提高交互性和用户体验, Ajax技术也带来了一系列安全问题, 例如已经出现了基于Ajax的病毒和信息泄露, 第一是信息泄露, Ajax技术应用使用了大量JavascriPt脚本, 这暴露了更多的攻击面, 这可能在浏览器未给用户任何提示情况下, 攻击者直接访问服务器来获取敏感信息。为了防止信息的泄露, 要把与服务器通讯的JavascriPt交互脚本写进js文件, 这样就可以防止客户端通过查看脚本获取敏感信息。还要注意保护JavascriPt源代码, 对含有重要信息的资源进行安全访问控制, 对需要保护的资源进行访问认证, 在JavascriPt脚本中对敏感信息加密传输, 在服务端对请求者的身份进行严格鉴定, 拒绝非法用户访问。并对来自外界的所有数据进行严格的数据校验。

第二是拒绝服务攻击。这类攻击甚至只需要一段JavaseriPt脚本就能够短时间提交大量垃圾请求, 很多大型网站都因此而瘫痪。在Ajax技术的应用中使用了异步代码, 拒绝服务就更容易发生。防拒绝服务攻击, 我们首先要设定一个符合用户习惯的有效的闭值, 在页面初始化时为每个模块发送一个时间戳到客户端, 请求时读取该时间戳。与当前时间进行比较, 合法则向客户端写入新的时间戳, 不合法返回错误信息, 另外为了防止攻击者伪造时间戳, 还要使用密码对其进行加密。

第三是是Ajax技术应用的性能问题, 性能取决于运行速度和消耗的系统资源。在设计Ajax技术应用程序时客户端的性能问题是一个不可忽视的问题, 解决方法是优化JavascriPt的执行速度, 慎用for循环, 将DOM节点附加到文档并尽量减少点号操作的使用。还有就是要强化内存管理, JavascriPt中的对象特别是DoM元素, 它们会占用大量内存, 很容易造成内存泄漏。理想情况下, 每个程序只是请求能让自己有效工作所需的内存, 但是对于Ajax技术设计不合理的应用来说, 进程往往消耗比实际需要更多的内存, 在设计时, 应尽量避免循环引用, 移除DOM元素, 目前流行的浏览器实现中都没有提供在DOM节点创建后自动销毁机制。要不再使用的DOM节点, 需要将它们与文档树分离, 使垃圾回收机制能够发现它, 从而将其释放。

3 结语

Ajax技术是Web应用的前沿技术, 本文对Ajax技术在Web的应用进行了初步的探讨, 分析了Ajax技术在Web的应用中存在的问题和相关的一些解决方案, 重点探讨了Ajax技术在Web的应用的安全问题。相信对Ajax技术在Web的应用深入和规范化有一定的参考意义。

摘要:随着互联网的不断发展和信息量的剧增, 如何使Web的响应更灵敏、数据传输更快捷成为当今关注的热点, 本文对此进行了初步的探讨。

关键词:Ajax技术,Web应用,研究

参考文献

[1] 施伟伟, 张蓓.征服Ajax[M].北京:人民邮电出版社, 2006.

[2] 柯昌正, 黄厚宽.Ajax技术的原理与应用[J].计算机应用, 2007, 16 (1) :28~29.

上一篇:浅谈体育教学中的创新教育下一篇:留学归国青年创业绩效影响因素——基于山东省的研究