Ajax认识的六个误区

看清楚Ajax
服务器君一共花费了206.783 ms进行了4次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

Ajax 到底是什么?是一个并不太容易掌握,但可以增加网站交互性的方法?是 Web2.0 的基石?还是又一轮网络开发中的跟风?就像以前流行过的闪烁字体、“溅水”页(译者:Splash page -Flash 动画或大图片做的网站的简介首页,往往有个“跳过简介”或“直接进入”的小按钮)、和使用圆角,只是这次动态性更强?

让我们看看有关 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 构架的文章(第一部分,第二部分)(译者:已经推荐,欢迎翻译本文)。

本文地址:http://www.nowamagic.net/librarys/veda/detail/740,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/740

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《C专家编程》 林登 (LinDen.P.V.D) (作者), 徐波 (译者)

《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。全书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。《C专家编程》可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,《C专家编程》可以帮助他们站在C的高度了解和学习C++。

更多计算机宝库...