Ajax 的六个误区小结分析
2024-09-01 08:29:35
供稿:网友
就像以前流行过的闪烁字体、“溅水”页(译者:Splash page -Flash动画或大图片做的网站的简介首页,往往有个“跳过简介”或“直接进入”的小按钮)、和使用圆角(译者:见YeeYan首页抬头,呵呵),只是这次动态性更强?
让我们看看有关Ajax的几个误区,拨开迷雾、发掘真相。
误区一:AJAX 是Asynchronous JavaScript and XML 的缩写。你写这个词时,应该用大写字母拼写,要不就显得很无知。
事实上,根据 Ajax 这个词的创造者Jesse James的介绍,Ajax可不仅仅是个缩写词。它是一系列技术用特定方式结合在一起的整体。它包括JavaScript,CSS, DOM 和运用 XMLHttpRequest 对象进行客户端与服务器间的数据传输。从服务器传到客户端的数据格式不一定是XML,还可以是 JSON(Javascript 中的对象)或其他数据格式。总之数据的传输是少量、递增的(译者:而不是传统的刷新整个页面)。所以,你要是想显摆一下自己是很懂的技术高手,用Ajax,而不是AJAX。您自己判断是不是想显摆自己吧。
误区二:看看Gmail和Google Map吧,Ajax 会让你的网站可用性更强。
事实上,使用Ajax 有可能让你的网站可用性增强,但也可能使你的网站变得让人可憎得难用。全新设计的Yahoo 电视节目列表就是这样一个反面教材。(译者:对新版Yahoo电视节目列表的反面评价主要认为Ajax的翻页功能让原来一页上列出所有电视节目的可用性变得更差,比如不能在一页中进行查找等,虽然翻页功能本身做得很漂亮。)
误区三:Ajax只是面子工程--仅仅是表面上看着挺酷和视觉效果。
事实上,如果有正确的设计和实施,Ajax 的网络应用应该比传统的CGI类型的,以服务器端处理为主体的(如ASP.NET或Java Server Pages,JSP)网络应用具有更好的可扩展性,和让用户体验到更快的反应速度。如需要了解技术细节,请参见IBM的Bill Higgins写的有关Ajax和REST的第一部分。这是我的总结:传统的CGI类型的,以服务器端处理为主体的网络应用,客户端不保存(网络应用执行的)状态(Stateless),状态的保存完全由服务器实施(Stateful server)。这使得服务器产生的结果(译者:比如动态从数据库读取的数据)只能一次性使用而不能被缓存(cache)下来再利用。这破坏了REST构架中的可扩展性原则。而Ajax能将状态保存在客户端,从而实现常用资源,如重复使用的数据和源程序(译者:应该是指Javascript),可以有效被缓存和再利用。
误区四:Ajax 对于一般网络开发人员很难掌握
Ajax 确实不容易。但它的使用难度正在逐步降低。有若干因素造成Ajax的实施难度:对不同浏览器兼容性的支持,开发工具的不足,以及对开发人员思维方式转变的要求--从过去以服务器端处理为主体的网络应用,转变到新的在客户端保存状态、逐步上传数据的应用。但由于Ajax越来越普及,很多开发工具和平台提供商以及开源软件开发者都在着力解决这一问题。这里列出若干对Ajax开发员有用的工具:Google 网络开发工具箱(给Java开发员的),dojo跨浏览器平台,script.aculo.us 长于提供视觉效果,以及用来调试JavaScript 程序、监视XMLHttpRequest的(FireFox插件)Firebug,等等。