[摘要]Ajax技术为WEB开发人员提供了一种新的开发模式,它改变了传统的基于请求或应答的应用模式,加入了异步通信的概念,实现了无重载的页面刷新,极大的改善了用户体验。本文首先阐述了Ajax技术的工作原理,然后从应用和局限性两个方面给出了该技术对电子商务的影响。
[关键词]ajax电子商务用户体验局限性
Ajax是异步JavaScript和XML的缩写(Asynchronous JavaScript and XML),包括XHTML、CSS、DOM、XML、XSLT 、XMLHTTPREQUEST和JavaScript等技术,其中核心技术是JavaScript、XMLHTTPREQUEST和XML。自2005年提出以来,在业界得到了广泛关注,并由于其丰富的功能、交互性以及快速的响应能力在WEB应用程序的开发中获得越来越多的应用,对于电子商务的影响也日渐重要。
一、Ajax工作原理
和传统的基于请求或应答的web应用相比,Ajax应用在用户端和服务器之间增加了一个中间层,称为Ajax引擎,它存在于用户本地浏览器中。用户发起的请求并不直接发送到服务器端,而是由Ajax引擎接收,然后异步的发送到远程的服务器去请求数据,服务器的响应数据返回后也是经Ajax引擎处理才显示在用户界面上。对于用户而言,它只是与位于本地的Ajax引擎通信,就像桌面程序一样,所以它发出HTTP请求后,不必像传统的web应用那样等待服务器的响应数据来刷新页面,而是可以继续通过页面和服务器进行其他交互,Ajax引擎会自动在适当的时候向服务器请求数据并把返回的数据显示在用户端。另外,传统的web应用是基于整个页面的刷新,而Ajax应用只传输和更新需要的数据,而不用刷新整个页面,也就是通过网络传输的不是整个页面,而是用户真正需要的数据,这样的工作模型不仅加快了用户请求的响应速度,还避免了刷新页面带来的屏幕闪烁,其结果是使web应用产生了类似桌面应用的用户体验。下图显示了基于Ajax的WEB应用的工作原理。
Ajax技术的关键是Ajax引擎,它主要是通过一个称为XMLHTTPREQUEST(针对IE浏览器称为XMLHTTP)的对象来实现的,由这个对象来接受用户请求,然后异步发送给服务器,最后调用注册在该对象上的回调函数来处理服务器返回的文档,从而实现页面的更新。
二、Ajax技术在电子商务中的应用
Ajax技术最大的好处就是能改善用户的上网体验,这对于依赖于“眼球经济”的电子商务来说具有很大的吸引力,从事电子商务活动的企业都希望自己的门户网站具有独特的魅力,能够吸引和留住更多的顾客;其次使用Ajax技术可以在一定程度上减少网络带宽,提高网站的利用率,相对于刷新页面的方式,采用Ajax技术节省的带宽比可用下面的公式计算:
(交互次数(刷新页交互流量 - AJAX页交互流量) - AJAX页首次加载增加量)/ (刷新页页面大小×交互次数 首次加载页面大小)
从这个公式可以看出,交互次数越多,节省的带宽越大,实际应用中,节省的带宽可达10%~60%。另外采用Ajax技术的网站还可以减轻服务器端的负荷,降低用户的访问等待时间。因此,Ajax技术在建设电子商务网站中可以发挥很大的作用,具体的讲,Ajax技术可在以下方面进行应用:
1.用户注册或数据验证类应用
现在,很多电子商务网站实行的会员制,用户使用网站前必须先注册。注册中最重要是要填写登录名,该登录名在网站数据库内必须是惟一的,因此每个新注册的用户注册成功之前都需要先查询一下数据库,如果有重复就需要用户重新填写。传统的做法是在用户填写完注册数据后,提交该页面,该页面通过脚本程序同后台的数据库交互,提交的结果是一个新页面,要么显示提交成功,要么出现重名要求重新填写。在这个过程中,整个注册页面通过网络传送到服务器端,如果注册项目很多,失败的注册将引起用户较长时间来等待页面刷新,作为一种改进方法,可以将填写登录名的页面同其它注册项页面分开来提交,但在注册中提交多个页面对用户来说并不是一个好的体验。采用Ajax技术可以很好的解决这个问题。用户填写好登录名后,一旦输入文本框失去焦点,该事件的处理函数就会通过Ajax调用来检查用户填写的登录名是否存在重复,而且这个调用是异步的,用户可以继续填写其它的注册项,服务器端经过查询数据库后返回的消息(如“该用户已存在”)将显示在注册页面的适当位置,提醒用户是否需要重新填写登录名。在这个过程中,网络上传输的不是整个页面而是少量的文本片段,如用户填写的登录名和服务器端返回的消息等,因而响应速度很快,这当然会给用户带来相当好的感受。事实上对用户输入数据进行数据库验证这类应用在电子商务应用中很常见,比如在注册网络银行时,对用户输入的金融卡卡号的有效性验证就可以采用同样的机制。
2.商品展示
电子商务网站需要展示待交易商品的各项信息,一般可以通过文字、图片、视频等来表现。Ajax技术在这方面有很多的应用,具有自己独特的魅力,比如对于商品的分类显示可以采用基于Ajax的动态树型结构,这种结构在进行显示、展开、添加、修改和删除等操作时,不会引起页面重载,而且只在需要时才去请求数据库,进行数据加载,不仅速度很快,也大大减少了服务器端的负担。又如在商品图片的处理上,可以实现类似“google earth”中的效果,如通过鼠标的滚动键实现图片的放大缩小,用鼠标拖动图片旋转,从而多视角展示商品。融入了Ajax技术的商品展示,会给用户留下深刻的印象,起到提升网站的人气和用户忠诚度的作用。
3.交互过程
现在的电子商务网站提倡个性化,十分注意满足用户的需求,因此也非常关注同用户的交互过程。Ajax在这方面也可以体现价值。首先是购物车,用户在购物过程中购物车是实现交易过程的关键,基于Ajax的购物车相对传统的购物车可以更快获得服务器端的响应,这会带来一些好处,比如用户的订购数超过库存的错误消息不用等到用户提交页面才知道。其次是用户的意见反馈,通常是采用留言簿或讨论区的方式,可以利用Ajax技术设计出反应异常灵敏的客户留言簿或讨论区,对于传统留言簿,刷新时是对整个留言页面进行更新,当留言很多时,页面刷新相当费时间,刷新前也不能看到别的用户新写的留言,而对于采用Ajax的留言簿,用户完成留言后不用刷新立即可以看到自己的留言,同时也可以在第一时间看到其他人新添的留言,这当然会给用户带来良好的感受。
4.其他应用
事实上,Ajax技术可用于任何只需要局部更新网页的场景,比如利用文本编辑框填写或修改数据、调查或投票、电子邮件、联机帮助文件等,都可以利用Ajax技术来改善用户的体验。
三、Ajax技术在电子商务中的局限性
尽管Ajax为传统的Web应用带来了革命性的变化,也为电子商务带来诸多应用,但它并非无所不能,其具有的局限性一定程度的影响了它的发展。
1.对网上用户行为分析技术的影响
用户访问电子商务网站时的各种行为会通过服务器的日志、Cookie等方式保存下来,然后企业利用数据挖掘等技术可以有效地分析从网上获取的这些数据,发现隐藏在其后的规律性,提取出有效信息,进而指导企业调整营销策略,采取精准营销、推荐营销等更为个性化的营销手段,使企业处于更有利的竞争位置。由于直接挖掘服务器日志效率较低,现在大中型的网站基本采用cookie跟踪,通过路径分析等方式来进行数据挖掘,但对于采用了Ajax技术的网站,无需用户多次载入网页,用户甚至可以在一个页面上完成所有交互,这使得基于路径分析法的数据挖掘将出现偏差,直接会影响企业的营销策略。因此,必须对原有的分析技术和工具进行改进以适应Ajax带来的挑战,但目前这方面的进展比较缓慢。
2.对网络广告的影响
网络广告对电子商务网站具有重要意义,Ajax技术的应用对网络广告的投放模式、投放效果及发布将产生影响。在传统方式下,用户每次刷新页面的时候就可以装载一个新广告,而对于采用了Ajax技术的web页面,用户更新页面内容时不需要刷新整个页面,也就不能装载新的广告,这就减少了网站能够展示的广告数量;如果网络广告按照点击率或展示次数来计费的话,采用Ajax技术后网站的点击率和展示次数都会发生显著变化,从而影响广告费用的计算;另外使用Ajax技术的网站,页面刷新(即广告装载)的决定权更多交给了网页开发者而不是广告的投放者,这对于广告投放者来说有时是不可接受的。如果Ajax发展的趋势不可逆转,那么网络广告业就必须认真的对待这些问题了。
3.对用户上网习惯的影响
无重载刷新对习惯了请求或应答方式的用户将是一个挑战。许多用户熟悉传统的请求或应答的WEB调用方式,对基于Ajax的页面更新方式会感到迷惑,比如用户不太清楚现有页面的数据是旧的还是已经更新过的。目前的解决办法有:在相关位置进行更新进度提示,把数据更新的区域设计得比较明显,数据更新后给用户提示等。
四、结束语
Ajax的异步工作方式为我们带来了一种全新的程序开发模式,它既不同于传统的WEB开发,也有别于桌面应用程序的开发,实际上它具备了两种开发模式的部分优点,从形式上看它是WEB应用,采用的B/S模式,但从效果上看,它又类似桌面应用,给用户以完美体验。Ajax对于电子商务的发展而言,机遇大于挑战,将会有越来越多的企业把Ajax技术应用到其电子商务建设中去,从而为我们带来更加绚丽多彩的网络世界。
参考文献:
[1]游丽贞郭字春李纯喜:Ajax引擎的原理和应用[J]. 微计算机信息.2006,22(2)
[2]Brett Mclauqhlin. Mastering Ajax, Part 1: Introduction to Ajax[J].http://www.ibm.com/developerworks.2005,12
[3]Christopher L Merrill. Using AJAX to Improve the Bandwidth Performance of Web Applications[J].http://www.webperformanceinc.com/library/reports/AjaxBandwidth/index.html.2006
[4]王雁:http://www.marketingman.net/Blog/Kelvin/ajaxandmarketing.html.2006-12-20