﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-LaoLee</title><link>http://www.blogjava.net/lizgyg/</link><description>生活没有彩排，每天都是现场演出</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 07:39:19 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 07:39:19 GMT</pubDate><ttl>60</ttl><item><title>Ajax光环背后的隐患</title><link>http://www.blogjava.net/lizgyg/archive/2009/02/07/253655.html</link><dc:creator>laolee</dc:creator><author>laolee</author><pubDate>Fri, 06 Feb 2009 19:03:00 GMT</pubDate><guid>http://www.blogjava.net/lizgyg/archive/2009/02/07/253655.html</guid><description><![CDATA[<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt"><span style="font-size: 10pt"><span style="font-family: Courier"><span style="font-family: Lucida Console"><br />
</span></span></span>自从 Jesse James Garrett 创造了 Ajax 这个名词，到现在已经过去十八个月了，AJAX 几乎让 Web 开发彻底改头换面。在这一年半的时间里，发生了很多事情，包括 Web 2.0 的热炒，许多创建或使用富互联网技术公司的诞生或复苏，还有真正动态化的在线软件层出不穷。很明显，AJAX 这个名词受到开发业界的广欢迎，已经真正的走入到我们生活中，Web 应用程序也达到前所未有的发展。</span></span></span></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">然而我们大多数人知道，其实在AJAX这个术语诞生前，这项技术的发展就已经为人们所熟知了。之所以AJAX的思想能迅速占据我们的头脑，因为它向我们指出了一个重要的新开发方向，AJAX技术可以说到了爆发的时间。强大功能的浏览器、高速带宽的网络连接、在线软件的趋势和开发工具的发展，这一切注定了AJAX的流行，但是在这些荣誉的光环背后关于Ajax的讨论或争论也一直没有停止过。</span></span></span></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">一直以来，Web开发社区关于Ajax方方面面的事情一直在争论不体，包括它的强大和不足、合适的应用和不可避免的缺陷等。我想我也应该分享一下我的观点，对于过去十八个月里让Web和浏览器焕发生机的AJAX技术，谈一下我的看法。AJAX的确帮助我们走向了下一代主流软件平台，它在创建个人或商业应用等方面，已经超越了传统的软件开发平台，以下仅仅是我的个人观点。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">1、 不为浏览器而生的Ajax</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">如果你是一个网络高手，你对Ajax一定不会陌生，从先前默默无闻到现在火爆发展，不可不称为这是一个奇迹，Ajax在五年前并没有向今天这样让人们所熟知，因为他不并是为浏览器而生的一种技术，Ajax低效的代码编写方式，同时也没有强大的第三方开发工具支持，要想设计出清晰的javascript软件，不经过严格的训练和努力是无法实现的，而且在不同的浏览器里调试Ajax，是一件非常令人头疼的事情。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">2、量身订做自已的Web服务需求</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">我一直认为Ajax要开发许多新的Web服务，来满足应用程序数据和后端存储的需要。实际上，对于那些没有正规的Web服务架构的服务终端项目，更倾向于使用HTML或简单的传统的HTTP POST。这样就使得人们可以非常容易的转向Ajax开发，可以在后端轻松的重用已经存在的HTTP服务，而不是转向复杂的SOAP或REST/WOA等。尽管这可能导致体系结构的混乱，可能会对日后带来一些麻烦，但它的确可以让人们非常轻松的转向AJAX开发提供条件。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">3、Ajax比传统Web设计和开发更棘手</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">HTML界面约定的丧失性、隐藏或潜在功能的无限制性、编程创建页面元素非声明性、以及其他一些Ajax的内在特性，这些特性都与传统的Web设计和开发方式背道而弛，Ajax并且要求Web设计者必须对DOM、Javascript和CSS的技术有相当的功底，对于一个传统的Web开发者来说还没有一条更便捷的路可以选择，同时也没有一款能够让开发变简单的开发工具，我们期待Ajax能够在Web开发中更易懂、更高效。 </span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">4、Ajax工具和组件仍在不断出现，现今还没有明显的领先者。</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">Ajax工具和组件满天飞，不像Eclipse一枝独秀，统领全雄，虽然Dojo在这个领域有很好的口碑，但这些成绩还是远远不够的。例如，Dojo框架目前的版本依然是0.3版。而且紧随其后的种种工具，框架和组件库还有很多，其优点和Dojo不相上下。Dojo的优势还不名显，开发人员面对如此多的选择往往是投其所好，所以在工具和组件方面还没有绝对的领先者可供选择。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">5、优秀的 Ajax 程序员很难找。</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">有人说曾经说过一个优秀的Java开发人员好找，但是一个优秀的Ajax人才，却是比登天还难，虽然此语有些太过，但是我们不难看出，要建造一个复杂的Ajax应用要远比Web设计技能难得多，而且很多有经验的开发人员都不太喜欢JavaScript编程和调试，这种情况自然就形成了Ajax优秀人才的缺少。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">6、必须积极地对付浏览器模型对 Ajax 的限制。</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">Ajax技术并非Web开发完美结合的产物，它有几个致命的弱点，一个是它会违反现有的Web模型，譬如，加书签，后退按钮等等。另外，Ajax也缺乏桌面软件的的很多强处，譬如能离线运行，访问本地硬盘存储等，但Flash 的本地存储和即将发行的Apollo平台能应付这类问题，Ajax要想再次成为众的焦点，解决上述问题刻不容缓。</span></span></span></p>
<p><strong><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">7、Ajax 只是成功RIA策略的一个因素。</span></span></span></strong></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">如果你想让Ajax实现更多的在线功能，那么你必须将类似Flex，OpenLaszlo，以及WPF/E等这样的RIA平台放在考虑范围之内，然而Ajax对此几乎无能为力。然而Ajax并未停止前进的脚步，特别是在后端服务器向服务器端推送、Web服务和企业环境的支持等，这也是Ajax在RIA策略上的成功的一个因素。</span></span></span></p>
<p><span style="font-family: Courier"><span style="font-family: Lucida Console"><span style="font-size: 10pt">当然，软件项目应该知道的事情还有很多，还有许多其他的事情，以上是我认为比较重要的事情。受到全球面向服务价格体系增长的影响，在线AJAX组件正在不断的出现，例如Google Maps等,，Ajax的技术也在不断理新，道琼斯新闻曾报道IBM、Google、雅虎、甲骨文等IT巨头联手支持Open Ajax计划。IBM、Google、雅虎、甲骨文和BEA系统等许多高科技公司宣布共同支持一个开源软件计划，旨在推广一种名为&#8220;Ajax&#8221;的新兴的Web开发技术，有了这些IT大享们的加入，解决上述七个问题应该指日可待。</span></span></span></p><img src ="http://www.blogjava.net/lizgyg/aggbug/253655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizgyg/" target="_blank">laolee</a> 2009-02-07 03:03 <a href="http://www.blogjava.net/lizgyg/archive/2009/02/07/253655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>