就像以前流行过的闪烁字体、“溅水”页(译者: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,等等。

误区五:Ajax 会破坏用户使用浏览器的体验(Ajax breaks the browser model)

确实,Ajax的应用有可能造成浏览器使用的问题,如破坏“返回键” 功能,让用户不知所以,让有残障的用户完全无法使用网站。但传统技术也可能产生类似问题:如使用框架(frames)或者Flash往往也会破坏“返回键” 功能;即便不用Ajax,糟糕的设计也能让一个网站把用户完全搞晕;即便使用最单纯的HTML也很难做到让有残障的用户顺利使用网站。这些是需要有意识地去注意和学习的方面,并不是仅存在于Ajax应用中的问题。

误区六:Ajax 是web2.0的关键组成部分

这要看你如何定义web2.0了。我认为web2.0和web1.0的区别主要在于社会层面而不是技术层面。从web1.0 到web2.0最重要的范式转变(paradigm shift)在于web2.0是双向的网络,可读写的网络和社会网络。而不是“让我们开家网上商店”的那个网络。按照这个定义,我们可以完全不用Ajax来实施web2.0。大多数博客不用Ajax;没有Ajax,维基百科照样能焕发它的异彩;社会化网络也不需要Ajax;Flickr 之所以吸引人是因为它是一个照片的社会化平台,而不是它使用的DHTML技术。

更多Ajax的相关资料(译者:建议深度阅读、推荐和翻译)

我个人最喜欢的有关 Ajax 的博客是Ajaxian 和 Shelley Power的“技术女狂人” 。Shelley 写的《添加Ajax》很快将会由O'Reilly 出版。而本文的写作参考了Bill Higgins 的关于Ajax和REST构架的文章(第一部分,第二部分。)

声明:IBM是我的客户。

译者:压题图片是原作者的照片。另外,原文上有原作者详细的联系方式。

Ajax 的六个误区小结分析的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  3. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  4. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  5. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  6. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  8. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  9. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

  10. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部