现在,有一种越来越流行越热的“老”技术,可以改变这种窘迫的局面。那就是Ajax。如今,随着Gmail、Google-maps的应用和各种浏览器的支持,Ajax正逐渐吸引全世界的眼球。 刷新网页——等待。。。——刷新网页——等待。。。
当您在使用浏览器浏览网页的时候,您是否经常遇到上面的情况?当您面对空白而缓慢展现的屏幕时,您是否感到痛苦甚至愤怒?
现在,有一种越来越流行越热的“老”技术,可以改变这种窘迫的局面。那就是Ajax。如今,随着Gmail、Google-maps的应用和各种浏览器的支持,Ajax正逐渐吸引全世界的眼球。
1.Ajax技术简介
AJAX(Asynchronous JavaScript and XML,即异步JavaScript + XML),其实是多种技术的综合。正如Ajax的命名者Jesse James Garrett所指出的:
Ajax不是一项技术。它其实是几项技术,每项技术自身都很繁荣,它们以强有力的全新方式结合起来。
Ajax主要涵盖以下几方面的技术:
-- 运用XHTML和CSS实现基于各种标准的展示。
-- 运用文档对象模型(Document Object Model)实现动态显示和交互。
-- 运用XML和XSLT实现数据交换和操作。
-- 运用XMLHttpRequet实现异步数据检索。
-- JavaScript将所有这些绑定到一起。
与传统的Web应用不同,Ajax采用异步交互过程。Ajax在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理—等待—处理—等待缺点。用户的浏览器在执行任务时即装载了Ajax引擎。Ajax引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。Ajax引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。AJAX的原则是“按需取数据”,使用Ajax可以最大程度的减少冗余请求,和响应对服务器造成的负担。
2.Ajax技术与ERP
当前主流的ERP采取的是B/S架构,在ERP的实际应用中,也存在许多传统Web开发方式无法解决的问题。虽然Ajax技术有待进一步完善和成熟,但是在ERP开发中适当地研究和引入Ajax开发思想和技术,解决传统方法难以应付的问题,无疑对开发人员和客户都是有益的。
下面就Ajax技术在ERP中可能的应用场景进行简单的讨论。
(1)数据验证
在进行表单内容的填写和更新时,有的时候需要将更新的数据到数据库中进行一下数据验证。传统的数据验证通常有两种方式:一种是直接填写,然后提交表单,这种方式需要将这个页面提交到服务器端进行验证,整个过程不仅时间长而且造成了服务器不必要的负担;第二种方式是改进了的验证过程,用户可以通过点击相应的验证按钮,打开新窗口查看验证结果,但是这样需要新开一个浏览器窗口或者对话框,还需要专门编写验证的页面,比较耗费系统资源。而使用Ajax技术,可以由XMLHttpRequet对象发出验证请求,根据返回的HTTP响应判断验证是否成功,整个过程不需要弹出新窗口,也不需要将整个页面提交到服务器,快速而又不加重服务器负担。
(2)树形结构
分类树或者树形结构在ERP系统中使用得非常广泛。应用Ajax技术可以改进分类树的实现机制。在初始化页面时,只获取第一级子分类的数据并且显示;当用户点开一级分类的第一节点时,页面会通过Ajax向服务器请求当前分类所属的二级子分类的所有数据;如果再请求已经呈现的二级分类的某一节点时,再次向服务器请求当前分类所属的三级子分类的所有数据,以此类推。页面会根据用户的操作向服务器请求它所需要的数据,这样就不会存在数据的冗余,减少了数据下载总量。同时,更新页面时不需要重载所有内容,只更新需要更新的那部分内容即可,相对于以前后台处理并且重载的方式,大大缩短了用户的等待时间。
(3)数据自动更新
Ajax出现之前,用户为了即使了解相应的内容必须不断刷新页面,查看是否有新的内容变化,或者页面本身实现定时刷新的功能。有可能会发生这种情况;有一段时间网页的内容没有发生任何变化,但是用户并不知道,仍然不断的刷新页面;或者用户失去了耐心,放弃了刷新页面,却很有可能在此有新的消息出现,这样就错过了第一时间得到消息的机会。
应用Ajax可以改善这种情况,页面加载以后,会通过Ajax引擎在后台进行定时的轮询,向服务器发送请求,查看是否有最新的消息。如果有则将新的数据(而不是所有数据)下载并且在页面上进行动态的更新,通过一定的方式通知用户(实现这样的功能正是JavaScript的强项)。这样即避免了用户不断手工刷新页面的不便,也不会因为重复刷新页面造成资源浪费。
需要注意的是,虽然Ajax已经获得广泛的支持,但实际的开发中,还是要注意跨浏览器的问题,这主要是在JavaScript编程部分。不过许多流行的框架封装了这些细节部分,可以解决这一问题。另外一方面,如果用户还在大量使用比较早期的浏览器版本,Ajax技术可能就无法奏效,在实施的时候这一点值得注意。
Ajax为Web应用开发提供了新的机会,也为ERP系统提出了新的要求。当因为Ajax技术而使得用户感受到全新体验的时候,赢家不会仅仅是用户。