AJAX浅谈
AJAX技术在1998年前后开始应用于Web,之后经由Google把它发扬光大,让更多人了解到JavaScript原来可以这样使用,而不再是过去广告字显示或画面渐层等刻版印象。如今AJAX已不再是新名词或新技术,而最经典、有名的代表作算是Google Suggest及Google Maps。
AJAX的定义
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。
AJAX vs. 传统
JavaScript在传统的作法是,你的档案或数据库来自server端或是要送到server,你可以用HTML窗体,并用GET或POST的方式透过submit按键将数据送到server端,然后等待响应讯息。但是使用AJAX,你可以使用JavaScript的XMLHttpRequest 对象跟server做沟通,可以藉由从server响应的数据,直接更新全部或部份的页面。
AJAX的优点
a. 不必更新全部网页,可更新部份页面。
b. 优化了browser和server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。
c. 平衡了前、后端的负载,原本数据大多由后端负责处理,借由AJAX让客户端分担些工作,减低了后端的负载。
AJAX的缺点
a. browser的通用性,每个user端的浏览器不尽相同、版本也不一致,有可能会造成无法动作问题。
b. 客户端会过肥,太多程序代码在客户端也会造成开发上的成本。
c. 可能会暴露服务端,有可能被恶意攻击、窜改,而造成安全上的漏洞。
AJAX的运用
为什么AJAX适合用于装载作业呢? 传统的网页数据更新,大多是在server端数据更新后便将数据送回client端的browser,当browser得到更新的请求时才会将网页内容更新。当user执行装载作业后,作业的状态讯息尚未回传,此时若再进行下个作业,往往会造成状态讯息遗失。也正因为装载系统还需要控制前端的水泥装载,设备间的状态一有变动,网页内容要能做到及时更新,使网页中的 embedded object 与多部硬设备间的沟通一直保持连结。在考虑多部硬件操作不会干扰彼此下,采用Ajax可以使整个作业流程更加顺畅、合理。
例如:当user想要做水泥装载时,按下装载按键时,如果使用JavaScript去呼叫客户端的com组件,可能会因为装载需要等候一段时间,导致网页整个当掉,也影响到其它按钮的失效。这时若借用AJAX的技术作为辅助,AJAX的每次动作就会用XML Http Request跟server做沟通,待server响应后,接收响应数据更新Model状态、数据库及网页页面,这样一来user不用一直等待实际装载的时间,也不会造成页面按钮失效。
AJAX的应用并非只在水泥装载这一项,目前也运用在其它功能及系统上。考虑系统整体的实际使用面,AJAX解决了数据延迟的问题,也改善了数据传输的速度,使得各营运据点能提供更快速的服务。