1、 毕业设计 文献综述 电子商务 Ajax技术在电子商务分销平台中的应用 (一)国内外 Ajax 技术应用研究情况 国外研究发现, 传统 WEB 开发模式交互过程 中 , 用户必须按顺序等待批量的请求 ,在使用完这些结果后才会发出新的请求。 HTTP 的设计是传回整个新的画面,所以在浏览器上必须重载整个页面来显示新的页面。完全是一种请求 刷新 响应的模型 ,用户只有等请求完成后才能进行用户操作 ,操作完成后才能提交下一个请求 ,用户行为和服务器行为是一种同步的关系。 AJAX 全称为 Asynchronous JavaScript and XML(异步 JavaScript 和 XML),是一种
2、设计交互式网页应用的网页开发技术,它包括: 使用 XHTML+CSS 来表示信息 ; 使用 JavaScript 操作 DOM( Document Object Model)进行动态显示及交互 ; 使用 XML 和 XSLT 进行数据交换及相关操作 ; 使用 XMLHttpRequest 对象与 Web 服务器进行异步通信 ; 使用 JavaScript 绑定一切 ; AJAX 技术的核心是 XMLHttpRequest,它最早由微软 IE5 支持这个对象,随后Mozilla1.0、 Apple Safari1.2 及 Opera 都陆续支持。 XMLHttpRequest 是一组 API 函
3、数集,可被 JavaScript、 JScript、 VBScript 以及其他 web 浏览器内嵌的脚本语言使用,通过 HTTP在浏览器和 web 服务器之间收发 XML 或其他数据。 2005 年初,许多事件使得 Ajax 被大众所接受。 Google 在它著名的交互应用程序中使用了异步通讯,如 Google 讨论组、Google 地图、 Google 搜索建议、 Gmail 等。 Ajax 这个词由 Ajax: A New Approach to Web Applications一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对Mozilla/Gecko 的支持使得该技术走向
4、成熟,变得更为易用。 国内认为,在 电子商务中,在 Internet 开放的网络环境下,通过浏览器 /服务器的方式所进行并完成的各种商务活动、交易活动、金融活动和相关的综合服务活动。商业电子化的趋势为客户提供了便利的交易方式和广泛的选择。 1 传统的 web 应用使用同步交互过程 , 当用户访问数量较小的时候,这种方式不会出现较大问题,而当访问数量较大带宽又较窄时,用户访问电子商务网站时需等待较长时间,造成浏览器处于 等待状态,甚至造成页面不可用。导致一些用户放弃交易 ,给企业造成经济损失,减弱了电子商务的优越性。 AJAX技术采用异步交互方式 ,它的出现改善了传统的 Web 应用 ,减少了用
5、户访问网站的等待时间 ,实现了无重载的页面刷新。本文我们将 AJAX 技术应用到电子商务系统的设计中 , 极大改善用户体验,有效的留住客户,为公司创造更大的利润价值。 (续“文献综述”) (二) Ajax 技术在电子商务中的应用当前成果 1、客户 个性化 体验 设计 电子商务网站的个性化设计可分为客户界面个性化和客户喜好商品推荐。界面个性化是客户根据自己的 需求,对网站的界面进行定制,主要包括商品类别模块的布局、主要模块的显示、隐藏与关闭、界面色彩的设计以及商品显示的方式等,并且可以实行界面模块的可拖放操作。 拖放是标准 GUI 的应用。用户可以选择一个特定的对象,它可以是一个文件 ,一些文本
6、等,然后将它移动到用户喜好的另一个特定的位置。通过 AJAX 技术,用户可以享受到与桌面系统更接近的用户体验 ,同时 ,用户无需采取额外步骤将数据提交到服务器,就能完成更新和服务器端响应。在 Google Maps 应用场景中,用户就可以通过鼠标拖拽的方式在地图中的街区之间穿梭漫游。 2、 不完全页面更新 减少等待 不完全页面更新是利用 AJAX 技术使浏览器刷新某一块特定的用户界面而不需要浏览器重新载入整个页面。这个是非常有必要的考虑,在特定时间,用户在和电子商务网站交互过程中,大部分页面内容仍然是静态的,如电子商务网站中的页眉 head.html,页脚 foot.html,商品类别菜单栏
7、menu.html 等,而用户交互的只是小部分网页。假设当用户想查看某一商品的信息,只需将鼠标移动到商品图片上,所有信息将显示,而页面其他部分未发生任何改变。 在电子商务系统中,利用 AJAX 技术,从服务器端返回一个纯文 本数据流,客户端交由浏览器负责进行处理。通过使用 XMLHttpRequest 对象来请求页面,服务器将结果文本写入页面。客户端通过异步通信获取结果后,不是直接将结果显示在页面上,而是由客户端的 JavaScript 脚本处理之后对页面对应的部分进行更新。 2 在大多数情况下,重新载入整个页面既浪费用户带宽,同时给服务器带来负担。AJAX 技术为我们提供了较好的解决方案,允
8、许浏览器仅刷新某一部分网页。 3、 无刷新实时数据更新 传统上 ,我们浏览网页 ,如果页面加入最新的数据,只能是等用户重新向服务器端请求时才能显示出来 .但是 ,对于实时性较高的电子商务网站,传统的做法是不能满足的。电子商务后台加入新的商品信息或者修改商品信息时,而用户正在浏览商品信息,非常有必要实行无刷新实时数据更新,用户才能获取最新商品信息,找到自己合适的产品。比如在 Gmail 应用场景中,新的邮件信息被自动接收和显示。可以让程序自动刷新定时向服务器请求数据 .5 秒取一次数据 ,10 秒取一次数据 .利用 XMLHTTP 发出请求并取得数据 .传到客户端 ,客户端重新组织并显示数据。
9、(三) Ajax 技术在电子商务网站的发展趋势 随着 ajax 的不断成熟,越来越多的 ajax 框架 雨后春笋,框架成为了 ajax 的发展主要趋势。比较流行的 ajax 框架主要有: 1、 jQuery 简洁的思想:几乎所有操作都是以选择 DOM 元素(有强大的 Selector)开始,然后是对其的操作( Chaining 等特性)。优点 是 小,压缩后代码只有 20 多 k(无压缩代码94k)。 Selector 和 DOM 操作的方便 , 应用的广泛,包括 google code 也使用了 jQuery。23%的开发者在使用该框架,并且在不断增加。 2、 Mootools 面向对象的设
10、计思想。模块化,各模块代码非常独立,最小的核心只有 8k,最大的优点 是可选择使用哪些模块,用的时候只导入使用的模块即可,完整的也不到 180k(没有压缩),压缩后不到 70k。语法的简洁,直观。特效( Effects)比 jQuery 强,现在也正在开发 Mootools UI(这应该是 Ajax 框架开发的一个趋势)。代码写的优美,易阅读和修改。 3、 Dojo IBM、 Sun、 BEA 作为 背后强大的支持 。 功能的强大, Full Stack 的框架,扩展了DHTML 的能力,例如:支持与浏览器 Back/Forward 按钮的集成。 Dojo Offline,一个跨平台的离线存储
11、 API。 Chart 组件, 可以方便地在浏览器端生成图表。基于 SVG/VML的矢量图形库。 Google Maps、 Yahoo! Maps 组件,方便开发 Mashup 应用。 Comet 支持,通过通用的 Buyeux 协议。强大的 UI( Dijit)。面向对象的设计,统一的命名空间,包管3 理机制( The Package System and Custom Builds)可扩展性。 4、 Ext JS 组件化,推进 RIA( Rich Internet Application)的应用。强大的 UI,而且性能不错,这是其最大的优点。速度快,管是 UI 还是其它模块。 100%面向
12、对象和组件化的思想,一致的语法,全局的命名空间。文档的完整,规范,方便。核心的开发团队, Jack Slocum等。活跃的社区,迅速增加的用户量。模块化实现,可扩展性强。所有的组件( widgets)都可直接使用,而无需进行设置 。 5、 Ajax 技术应用中所存在的问题 潜在的安全问题一直是 ajax 技术发展的阻力。 不用切换页面的服务器通讯,换而言之,对服务器来说,大部分动作都是在看不到的远程处理的,因此电子商务系统中的安全问题显得更为重要。例如,必须随时特别注意收到的数据是否为外部恶意篡改的资料。 自从 JavaScript 是一种客户端的语言,这也说明它最容易接触到最终用户。在开发电
13、子商务系统时,如果开发人员将太多在 Web 应用程序内部运作的重要信息放在JavaScript 中,一些恶意用户可能发出具有潜在破坏性的拒绝服务攻击,甚至是将病毒经过应用程序下载到服务器中,导致服务器瘫痪。 AJAX 的优点在于减轻服务器的工作量,而把工作改由处理能力越来越强的客户端 PC 来执行,以便减少服务器的负担。但是随着操作方式的不同,反而可能造成请求过多,而使服务器应付不了的可能性。 在开发电子商务系统时不仔细思考如何减低无谓的 请求,则使用 AJAX 减少服务器压力的效果是无法实现的。为了真正实现轻快的动作,数据传送量、请求次数、服务器负担等必须整体加以考虑调整。 (四)存在问题
14、1、 XMLHttpRequest 的普遍性 XMLHttpRequest 是 ajax 技术的核心,使用 XMLHttpRequest 对象才能异步交互。开发者面对的最大问题就是 XMLHttpRequest 在不可用时的处理机制。虽然如今大部分新版浏览器已经支持了 XMLHttpRequest 创建对象,但是仍有少部分用户,例如使用移动设备、手持设备的用户,他们的浏览器不能 支持 XMLHttpRequest。又或者,一些用户的浏览器处于某些安全的考虑阻止了 XMLHttpRequest 的使用。这时,没有一种可代替的技术来完成相应的交互,特别是对电子商务平台来说,兼用性事最大缺憾。 4
15、2、与浏览器程序的应用性缺陷 Ajax 的无刷新交互是一把双刃剑,例如,要让用户在注册时意识到自己的输入数据正在被处理时, XMLHttpRequest 的处理过程并不提供通常的鼠标漏斗旋转来提示,必须要求开发者提供额外的加载图标或加载中提示。另外,用户在浏览页面时,可能不会注意到他们面对的页面已经被更新。 Ajax 更新后的页面不能使用浏览器的“后退”功能,地址栏中的 URL 不能反映页面的交互状态,因此书签和收藏夹也是不可用的。 3、服务负担 使用 ajax 技术彻底代替了传统的基于 form 的界面,它可能在某种情况下不断的增加传递到服务器的请求数量。例如自动完成功能,当用户键入第一个字
16、母时,请求即发出。同样,用户每键入一个字母,就发出一次请求。对于上万个用户同时在线的平台来说,坚强的服务器后盾必不可少。 【参考文献】 1 张桂元,贾燕枫等 .征服 Ajax web2.0 快速入门与项目实践( java) .北京:人民邮电出 版社, 2006.6. 2 孙卫琴 .精通 Struts:基于 MVC 的 Java web设计与开发 .北京:电子工业出版社,2004.8. 3 刘伟,张利国 .Java Web 开发与实战: Eclipse+Tomcat+Servlet+JSP 整合应用 .北京:科学出版社, 2008. 4 耿祥义 .Java 基础教程 .北京:清华大学出版社, 2
17、007.5. 5 Christian Heilmann.深入浅出 JavaScript.北京: 人民邮电出版社 ,2008.4. 6 王芳潇 .基于 Struts与 AJAX的 Web交互模型的研究 . ASPT来源刊 CJFD收录刊 ,2010-01. 7 王玉娟 .Ajax 技术缺陷及其优化 .南京 :南京信息职业技术学院 ,2010. 8 梁文新等 .Ajax+JSP 网站开发从入门到精通 .北京:清华大学出版社 ,2009. 9 Dave Crane.Ajax 实战 实例详解 .北京 : 人民邮电出版社 ,2008. 10 Nathaniel T. Schutta. Ajax 与 Ja
18、va 高级程序设计 .北京 :人民邮电出版社 ,2007. 11 David Johnson.AJAX 企业级开发 .北京 :人民邮电出版社 ,2008.10. 12 王国辉 .Java Web 程序开发范例宝典 .北京:人民邮电出版社, 2009.11( 01) :581-605 5 13 张孝祥 .Struts 基础与案例开发详解 .ISBN 978-7-302-20856-3.清华大学出版社 ,2009.9 14 Steven Olson. Ajax on JavaM.OReilly Media, Inc.2007 15 Michael Mahemoff.Ajax design patterns. OReilly Media, Inc.2006