Ajax技术和原理分析
2017-09-29黄欣彬张娅
黄欣彬 张娅
摘要 运用Ajax技术可以大大改变Web应用程序的开发方式,实现无需刷新页面就能实现页面更新。本文主要分析Ajax的原理,是Ajax的核心对象,以及运用Ajax技术的优点及缺陷。
关键词 Ajax 原理;XmlHttpRequest对象;Ajax优势
中图分类号 TP3 文献标识码 A 文章编号 2095—6363(2016)13—0045—01
Ajax不是新研究开发的一种技术,是一种使用现有标准的新方法,主要是多种原有技术结合在一起而形成的一种技术。主要通过使用CSS和XHTML来实现表示,实现交互和动态显示通过DOM模型来完成,通过XMLHttpRequest来实现与服务器进行异步通信,并且通过JavaScript来完成相关绑定和调用。除XmlHttpRequest对象外,其他技术在网络方面都得到很广泛的运用。
XMLHttpRequest虽然目前还没有被W3C所采纳,但是它已经是一个事实的标准,因为目前几乎所有的主流浏览器都支持它。
1 Ajax核心原理
Ajax的核心原理主要是运用XmlHttpRequest对象向服务器发出异步请求,从而完成获取服务器的数据操作,基于JavaScript技术来操作DOM实现页面的更新,即无需加载整个网页内容的情况下实现网页的差异更新。其关键步骤是请求数据如何从服务器获得,主要通过XMLHttpRequest对象来实现。同时Ajax的遵守原则“按需取数据”,可以最大程度地减少“冗余请求”,降低服务器响应的负荷。
2 XmlHttpRequest对象
AIjax的核心机制是XMLHttpRequest对象,最先在IE5中使用,能够完成异步请求的一种技术,即通过JavaScript快速向服务器发起请求和处理响应,并且不会阻塞用户,实现无刷新的效果。XMLHttpRequest这个对象的属性。
onreadystatechange所触发事件的处理程序所表现的状态;
responseText实现数据的字符串从服务器进程返回串形式;
responseXML从服务器进程返回的DOM兼容的文档数据对象;
status从服务器返回的数字代码,200(已就绪)和404(未找到);
status Text伴随状态码的字符串信息;
readyState状态值(0,1,2,3,4)。
3 Ajax技术的优势
运用Ajax技术到Web中都会感觉该技术所带来的优点。
1)使用Ajax会开发出动态性非常强的Web界面,在一些运用Ajax技术的浏览器的搜索框输入关键字时,服务器将快速接收到这些字符,服务器将快速返回一个搜索建议的列表。
2)页面不需全部加载刷新,快速完成服务器与页面内的通信,给用户的体验非常好。页面与服务器采用异步方式,防止打断用户的操作,从而其响应能力更加快速的完成。
3)利用客户端的闲置能力分担服务器承载的一部分工作,从而降低服务器的负荷,同时也减少带宽的负担,节约公共资源,降低成本。
4)运用JavaScript的难度得到简化。独特JavaScript的灵活语法以及其物件观念,让其能够更好深入使用文件物件模型(DOM)与CSS的强大操控能力,以便更好应用浏览器XMLHttpRequest物件,简化JavaScript的便用难度,更好地使开发人员专注在开发工作上。
5)浏览器的相容性问题得到一定的解决。对文件的解析与语法的支援在不同浏览器结果是有一定的差异,在浏览器不同版本上有时也会表现出不同的行为,从而让JavaScript应用程序出现一定的瓶颈,而采用Ajax框架能提前解放设计人员对浏览器相容性的问题。
4 Ajax技术的缺点
大家平时使用一种技术更多的注意其优点,但也不能忽视其所带来的缺陷。而Ajax技术也有自身的缺陷。
1)程序异常处理机制的缺陷。Ajax框架本身会直接造成程序的异常机制遭到破坏,若采用Ajax和传统的form提交的模式来删除一条数据,给代码的编写和调试带来许多困难。
2)Ajax技术中没后退功能,这主要是和JavaScript无法实现很好的结合。这就与IE后退功能相违背,而后退功能是Web站点的标配功能。这也是Ajax技术自身存在的重要缺陷,但可通过较笨的办法解决,即在Gmail中运用Ajax技术解决没有后退功能,但没有改变Ajax技术的退出机制。在Gmail中运用AjaX技术,浏览者可单击IE后退按钮查看历史记录时,通过创建或使用一个隐藏的IFRAME来完成页面上的差异变更,即单击后退时,在隐藏的IFRAME中实现搜索,并且在Ajax元素中反映出搜索结果,以便将应用程序状态恢复到当时的状态,但是它所带来的开发成本是非常高的,和Ajax技术所要求的快速开发是相背离的。这是Ajax所带来的一个非常严重的问题。
3)安全因素。一项技术的运用也给IT企业直接或间接产生了新的安全威胁,而通过Ajax技术建立一条通往企业数据的直接通道,这就会造成更多的数据和服务器逻辑会在不经意间比以前暴露得更多。同时Ajax技术的逻辑会隐藏对客户端的安全扫描技术,将给黑客从远端服务器上建立新的攻击提供了新的机会。同时Ajax也存在基于credentials的安全漏洞、跨站點脚步攻击和等SOL注入攻击。
4)Ajax没有遵循资源定位和url的机制,手持设备(如手机、Pad等)不能非常灵活的支持Ajax技术,在手持设备的浏览器上打开运用Ajax技术设计的网站时,现在还不能很好的支持,需要有待的完善和改进。
5结论
Ajax不是一种万能的技术,它有适合自身应用的场合,并与现有的动态页面技术互补融合,在未来的软件技术发展中,相信Ajax将担负起更多的用途,在Web应用中发挥重要的作用。endprint