﻿<?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-开源盛世-文章分类-AJAX</title><link>http://www.blogjava.net/ajax/category/7010.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:31:53 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:31:53 GMT</pubDate><ttl>60</ttl><item><title>AJAX会取代桌面系统吗？(译文)</title><link>http://www.blogjava.net/ajax/articles/28026.html</link><dc:creator>ajax</dc:creator><author>ajax</author><pubDate>Sat, 14 Jan 2006 07:02:00 GMT</pubDate><guid>http://www.blogjava.net/ajax/articles/28026.html</guid><wfw:comment>http://www.blogjava.net/ajax/comments/28026.html</wfw:comment><comments>http://www.blogjava.net/ajax/articles/28026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ajax/comments/commentRss/28026.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ajax/services/trackbacks/28026.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关于是否AJAX会取代桌面应用的讨论渐渐热烈起来，针锋相对的两大阵营也开始形成<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>开门见山，在这篇文章里要展现的我的信念和论点是：AJAX不大可能会取代桌面应用，但是它会催生一个新型的软件应用模式；这种新型的软件应用模式极有可能是开发工具、协作工具和商业应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>一些应用可能根本不会在桌面系统上看到——虽然很多的应用不大可能很快就退出历史的舞台、它们需要随时满足桌面系统的要求<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我认为软件的下一场革命不会像出埃及记那样的完全抛弃桌面，而是一场中等的各种模式的重新定位和组合，通过适应外界的意图来达到软件工业的繁荣<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 像其他的桌面应用一样，基于AJAX的WEB应用会跟随你左右<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们中的大多数人最起码有一个朋友，他周游世界，给你留下HOTMAIL或者YAHOO MAIL的账号以供你联系<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>实际上，这些基于浏览器的EMAIL界面有助于我们迅速的采用EMAIL作为个人应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这些天来，使用传统的HMTL界面的商业级EMAIL应用不再出现了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>Outlook Web Access (OWA)（虽然有一个精彩的AJAX界面）由于一些原因没有真正流行起来，但是GMAIL和Zimbra正在浮出水面，而且Zimbra准备取代Outlook和Exchange两者，它发布完全基于浏览器的UI<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>而对于微软来说，他们主动地发布了一个全新的基于AAJAX的EAMIL客户端，如果这个客户端加入了OWA的一些功能，那么它将比HOTMAIL更好用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>如果你看看CRM的世界，你会发现看起来WEB应用已经取代了桌面应用，Salesforce.com是一个明显的例子，而基于WEB浏览器的MS CRM已经发布了好几年<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>那些地方基于AJAX的WEB应用会取代桌面应用？<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在那些实时和共享信息是首要条件的应用中，基于AJAX的WEB应用是一个合理的选择，这些应用包括：后勤、会计和CRM系统<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>在一个共享文件系统中以<A href="http://www.xker.com/Html/yjxt/lyjs/" target=_blank><FONT color=#333333>路由</FONT></A>EXCEL表单作为一个分布式定价和客户管理的方法将成为历史<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>在现代商业中，及时的商务数据是一个关键的组成部分，而WEB应用是天然的以数据为中心的系统<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>AJAX恰恰能做到这样一个应用系统的UI，这个UI不会导致用户在点击鼠标以后因为漫长的等待页面刷新而引起厌倦情绪<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 依赖WEB服务和全新的数据源如整合多种巨型数据源的服务映射的应用仍然是有用的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>同样，许多基于面向服务的架构（SOA）的企业系统将极大的从分布式和可用性上受益于AJAX<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;基于浏览器的分布式的富客户端能降低每个终端的许可费用，例如企业报告系统<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>不久前，一个来自一个主要的SOA的替工商的CTO向我咨询一个基于AJAX的UI该怎样定价的问题，简单的回答是它不可能和以前的C/S模式的厚客户端一样定价<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>一些软件开发商找到了新的软件许可的方法，这种方法没有降低客户对富客户端的、WEB<A href="http://www.xker.com/Html/yjxt/lyjs/" target=_blank><FONT color=#333333>路由</FONT></A>的和他们满意的软件的要求，这种现实将导致更多的软件向AJAX转移<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很明显，由于应用系统仍然通过WEB和WEB浏览器发布，那些所有的按需软件、软件服务和服务提供商的优点依然存在<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>抛弃那些如上所述的基于浏览器的应用的优点是愚蠢的浪费时间的行为；然而，认识到AJAX使基于浏览器的WEB应用有高得多的可用性是很重要的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这种可用性方面的优点可以根据在操作更快的用户接口时的省时而感觉得到<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>Alexei White在他的文章Measuring the Benefits of Ajax中探讨了这方面的主题<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>由于这些原因，AJAX在那些需要用户重复性的操作大量数据的任务的在线系统中会成为一个赢家，想想那些呼叫中心和金融机构吧<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>以下场景：你有大量的重复任务、应用和大量的信息处理工人，是一个应用基于AJAX的WEB应用的一个成熟时机<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那些随着时间的改变需要修改和改变的应用也可以从AJAX技术中获益<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>用户往往没有往新的应用上迁移的意愿<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>AJAX的发展会增加那些基于HTML接口或者拥有SOA架构的应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>对于开发团队来说，随着时间的增加而增加可用性是非常有诱惑力的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另一个AJAX会赢的地方是这样的一些商业系统，在那里，人们需要大量的、远远超过WEB浏览器的地理的发布和支持，并且网络连接是非常昂费的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>哪些地方桌面系统依然是王者？<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看看哪些地方桌面系统不会被富WEB应用取代是很重要的，即使是最狂热的AJAX布道者也会告诉你，应用这种技术只能在一定的范围<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>让我们看看AJAX不能做得非常好的一些事情：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .浏览器因素：增加按钮、工具栏、书签、图标，改变浏览器行为<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;.本地文件访问：在用户的硬件驱动上读写文件<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .语音播放：音乐和声音<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .富图形：提供附图形和它们的动态变化<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>（这个问题由于一些浏览器引入了SVG而逐渐改变，但仍然无法与桌面系统抗衡）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .键盘快捷键：提供一个大范围的键盘快捷键并且避免他们与浏览器的快捷键相抵触<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .硬件的访问：从诸如麦克风、扫描仪和游戏手柄之类的仪器的硬件输入；输出到诸如打印机和其他便携式设备等硬件<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .可扩展的通讯：从一个客户机到远处仅仅一个<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>之间的通讯，使用的协议不仅仅是简单的、古老的HTTP<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .与<A href="http://www.xker.com/Html/czxt/index.html" target=_blank><FONT color=#333333>操作系统</FONT></A>的交互：捕捉如关闭、开始这样的事件；改变参数；弹出警告；读取硬件信息<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当然，AJAX不支持视频或者音频，所以视频会议、VOIP和富媒体应用被排除在外<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但是，增加FLASH到UI技术的话，富媒体就能够被集成到AJAX接口上去<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>同样，所有的需要和处理器和存储器交互的应用对于AJAX来说都是不适合使用的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>对我们来说需要一段长时间才能看到在WEB浏览器上有这样的应用：视频编辑、图像处理和视频游戏<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我不认为我们将看到人们玩使用JAVASCRIPT设计的Quake类型的第一人射击游戏，这毫无意思<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>哪里我们将看到桌面系统从WEB系统有优势？</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 桌面应用世界将从WEB服务和SOA架构中获益匪浅（事实上已经获益了）我们将看到更多的这两个世界的集成<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们已经看到桌面应用被网络如iTunes强烈的向富内容推进<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>桌面应用将要集成在线的、基于AJAX的服务，如Live.com和MS Office<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 根据新应用（基于WEB）的采用比率，AJAX成为优胜者<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>没有其他技术遇到的障碍会比你采用浏览器和网络连接遇到的小<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>而且许多AJAX应用会获得网络的益处远远比经过优化的客户端系统多<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>哪里AJAX会产生一个新的服务机会？</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 看看GOOGLE地图吧，没有用户能在他们的本地桌面系统里保存所有的映射、图像和商业/地址清单数据<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>更进一步的概念是mashups，这个网站或者网络应用无缝的将多个来源的内容组合成一个集成的体验<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>如果每一次用户想合并不同的数据包的时候，他们都不得不安装一个插件或别的什么，那么这个网站将无法工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>即使一个客户端应用能得到数据，它也不能保持数据的更新象一个以网络为中心应用那么容易<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 协作将要结合到应用里面去，这是以前没有过的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>像Writely这样的网站一旦被快速采用，将改变我们所认为的办公类型的应用的模式<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>从一开始，所有的应用有一个共同的平台——浏览器，说相同的语言（XML、HTML等等）<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这意味着这些小应用随着发展将更加容易的被集成到一起<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>目前，微软的Office的各组件已经被很好的集成到了一起，如果你使用SharePoint的话，它将进行非常完美的协同工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>然而，这依赖于在每一个客户端安装大量的软件，并且<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>框架有很好的扩展性来导入它们<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但是，WEB应用能提高这种体验而AJAX能使这些WEB应用更加可用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用基于网络的、结合了富AJAX的用户接口和实时协作的能力的数据服务的功能，应用将被永远的改变了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>现在的文档和数据包多是一个变化着的内容，而不是一个静止的视图或页面<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>结论</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 未来的软件看起来会是什么模样？今天看来，占卜的水晶球还是模糊的，当然，它其实永远是模糊的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但是我想一个或大或小的变化正在我们中间发生<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们清楚地看到WEB应用被大量的采用，而这种大量采用得益于AJAX的应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>站在今天的起点上，通过开发社区持续不断的共同努力，我们会使AJAX取得一个主要的进步<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们现在仅仅看到冰山的一角<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>然而，我也认为桌面应用的势力仍然将在应用中占有一席之地，而且事实上可能永远不会消失<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>&nbsp;<BR><STRONG>索引</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Michael Mahemoff's Blog and Podcast. 
<DIV twffan="done"></DIV>
<DIV twffan="done"><STRONG>关于作者</STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Andre Charland从事Internet软件开始超过十年之久，他是eBusiness Applications (www.ebusinessapps.com)公司的主席和创建者之一<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他和Dave Johnson在1998年创建了该公司<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他主要的经验在可用性、市场、项目管理和基于构件的软件开发<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>所受教育包括：在Vancouver, BC的Simon Fraser University，他在那里读计算机科学和工商管理<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他作为开发者、管理者和架构师等不同身份有上百个Internet项目的经验<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR><STRONG>&nbsp;原文链接<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; http://www.developer.com/java/web/article.php/3574116</DIV><img src ="http://www.blogjava.net/ajax/aggbug/28026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ajax/" target="_blank">ajax</a> 2006-01-14 15:02 <a href="http://www.blogjava.net/ajax/articles/28026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用AJAX的十大理由（译文）</title><link>http://www.blogjava.net/ajax/articles/28025.html</link><dc:creator>ajax</dc:creator><author>ajax</author><pubDate>Sat, 14 Jan 2006 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/ajax/articles/28025.html</guid><wfw:comment>http://www.blogjava.net/ajax/comments/28025.html</wfw:comment><comments>http://www.blogjava.net/ajax/articles/28025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ajax/comments/commentRss/28025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ajax/services/trackbacks/28025.html</trackback:ping><description><![CDATA[<FONT face=Arial>保守来说，AJAX在现在是热得不能再热的技术</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><FONT face=Arial>没有人能否认，它拥有大批的支持者</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><FONT face=Arial>在CNN上，它从二月份的一个不被看好的词语到十月份成长成一个初具雏形的技术</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><FONT face=Arial>所以，有必要要看看为什么AJAX能发展成为现在的样子，为什么它能不断成长，并且在短的时间内迅速变得无处不在</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><FONT face=Arial>所以，我用午夜谈话的风格，来给出 需要AJAX技术的十大理由</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>     使用AJAX的十大理由：<BR>     10.  </FONT><FONT face=Arial>XAML, XUL, XForms...等等</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       9.  </FONT><FONT face=Arial>服务端技术的不确定性</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       8.  </FONT><FONT face=Arial>Web2.0</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       7.  </FONT><FONT face=Arial>被软件工业领袖们强势采用</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       6.  </FONT><FONT face=Arial>和Flex 和 Flash等技术的很好的集成</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       5.  </FONT><FONT face=Arial>边际成本低</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       4.  </FONT><FONT face=Arial>能使常规的Web应用受益</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       3.  </FONT><FONT face=Arial>跨浏览器和跨平台</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       2.  </FONT><FONT face=Arial>以可用性和用户体验为王</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR><FONT face=Arial>       1. </FONT><FONT face=Arial>基于公开标准</FONT><A href="http://www.xker.com/" target=_blank><FONT face=Arial color=#333333>。</FONT></A><BR> <BR><FONT face=Arial>十大理由第一名：公开标准<BR>     让我们从第一条开始，AJAX技术是基于被各大浏览器和平台都支持的公开标准的技术<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这意味着该技术不怕技术提供商的技术封锁<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>组成AJAX技术的大多数技术都能放心的使用很多年，而那些不是热点的、最新的和未经考验的技术只能使用一段时间<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>现在，对于绝大多数的用户和企业来说，浏览器是一个可信任的应用平台，这在五年前就不是个问题了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>对于AJAX来说，FIREFOX浏览器的基础Mozilla 1.0的发布并且支持XML HTTP Request对象是一个转折点<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这种允许异步数据交换的技术好多年前就被IE浏览器支持了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这种支持和FIREFOX浏览器的大量被采用真正的使人们理解了跨浏览器的富Internet应用成为了可能<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>    1）<FONT color=#333333> </FONT>JavaScript or ECMA Script (Standard ECM A- 262)：一个有趣的事情是，Javascript是经过长时间后才成为被人们接受的技术，长时间以来，很多公司采用非Javascript技术的方针，幸运的是，这种状况被迅速的改变<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>     </FONT><FONT face=Arial>http://www.ecma-international.org/publications/standards/Ecma-262.htm</FONT><FONT face=Arial><A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>    2）<FONT color=#333333> </FONT>XML：是一个来自W3C的、被广泛应用的标准<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>     </FONT><FONT face=Arial>http://www.w3.org/XML/</FONT><FONT face=Arial><A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>    3）<FONT color=#333333> </FONT>HTML：</FONT><FONT face=Arial>http://www.w3.org/MarkUp/</FONT><FONT face=Arial>. <BR>    4）<FONT color=#333333> </FONT>CSS：</FONT><FONT face=Arial>http://www.w3.org/Style/CSS/</FONT><FONT face=Arial>.<BR>    5）<FONT color=#333333> </FONT>XML HTTP Request Object：被Internet Explorer、Mozilla-based、Safari和Opera浏览器支持<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT><FONT face=Arial><BR><BR>十大理由第二名：可用性<BR>     开发人员和设计人员开始认识到不仅大型的用户体验在市场上是成功的，而且也认识到这样体验是怎么来影响用户的开销的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>基于AJAX技术的<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>地图比传统的选择MapQuest更成功，证明了提供更好的用户体验的产品的成功<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>AJAX技术是使网络应用有更好的可用性的一个领导性的技术<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>它允许从<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>端请求少量的信息，而不是整个网页<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>它增加了页面数据的更新但同时减少了页面的刷新和刷新等待，这些问题从网络已诞生就折磨着Web应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>     人们已经知道他们需要一个优秀的用户界面并且有对该界面的投资意愿<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>前提条件是：用户能够快速的取得信息不管数据是一个内部网的应用还是一个广域网的服务<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR><BR>十大理由第三名：跨浏览器和跨平台的兼容性<BR>     IE和基于Mozilla的FIREFOX是占据市场分额最大的两个浏览器，并且它们都支持在浏览器上轻松创建基于AJAX的WEB应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>现在开发运行在更为先进的WEB浏览器上的基于AJAX的富WEB应用成为了可能<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这是为什么AJAX应用变得如此流行的一个最重要的原因<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>其实很多开发人员多年前就意识到AJAX技术流行的可能，但一直没有流行是因为浏览器厂商的原因<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>感谢Mozilla和FIREFOX<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>
<DIV twffan="done">
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done"><FONT face=Arial><BR>十大理由第四名：使常规的WEB应用受益<BR>     AJAX技术是当今WEB应用的门面——WEB应用获得的利益超过了桌面应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这些利益包括部署应用的低投入、维护方便、缩短开发时间和不需要安装<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这些都是促使商业和用户自从上世纪九十年代以来采用WEB应用的优点<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>AJAX技术不但能使WEB应用获得益处，而且使最终用户受益<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT></DIV>
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done"><FONT face=Arial><BR>十大理由第五名：促使技能、工具和技术的升级<BR>     由于AJAX基于这些年一直使用的一些公开标准，很多的开发人员就会有新的技术方面的要求以便能够开发AJAX应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但这并不意味着开发团队从基于HTML和FORM的应用转移到富AJAX型应用需要很高的学习曲线<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>同时，这意味着开发WEB应用的开发团体需要加速将他们的用户接口升级到AJAX，但并不需要一个大规模的升级和重写他们的WEB应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>自从上世纪九十年代以来，在开发基于浏览器应用方法花了大量投资的那些系统强烈的希望能在现有的应用的基础上增加用户体验<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT></DIV>
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done"><FONT face=Arial><BR>十大理由第六名：能和Flex 和 Flash等技术的很好的集成<BR>    大多数的开发社区都不再支持Flash vs AJAX的火热讨论，这两种技术都在不同的场合拥有各自的优点和缺点，但是它们有大量的机会可以集成到一起工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>很多的开发人员和技术提供商意识到这一点，并且开发出了伟大的产品来集成Flex和AJAX协调使用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们也热切的期望看到两者能在Macromedia里一起工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT><FONT face=Arial><BR><BR>十大理由第七名：采用率<BR>AJAX被业内领袖广泛采用证明了市场的欢迎程度和该技术组的正确<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>每一个该技术的使用者都成为了胜利者：包括<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>、yahoo、Amazon和微软等等<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>是<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>地图吸引了WEB开发人员的目光，当人们开始调查是什么原因使得<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>有着如此惊人的用户体验的时候，人们揭开了罩在AJAX头上的面纱<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>     当然，仅仅是<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>使用AJAX是不够使得这项技术跨越从支流到主流的鸿沟的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但是，如果你看一看使用AJAX技术的客户如eBusiness Applications (www.ebusinessapps.com) or Tibco (<A href="http://www.tibco.com">http://www.tibco.com</A>)等的表单时，你就会发现财富500强包括主要的金融机构、政府机构、航空公司和其他主要商业机构采用AJAX，并且在AJAX成为硬通货之前很早就开始使用了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT><FONT face=Arial><BR><BR>十大理由第八名：WEB2.0<BR>     喜欢也好，厌恶也罢<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>WEB2.0运行吸引了开发人员、风险投资商、市场和最终用户等所有的目光<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这些明确的促进了AJAX的早期应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>当大肆的宣传过去以后，我们将会看到什么呢？从BackPack到<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>地图，AJAX界面是WEB2.0应用的主要的组成<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>大量的宣传有助于加速采用AJAX，而在可用性上的获益会使得该技术被广发应用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>WEB2.0的一个主要原则是使用WEB作为一个应用开发的平台，而不仅仅是一个网页<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>高的可用性和交互能力的用户界面是一切应用平台的主要组成部分<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR><BR>十大理由第九名：AJAX基于<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>技术的不确定性<BR>     和AJAX技术的浏览器的独立性相同，该技术也兼容所有的标准型的<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>和服务端语言，如PHP, ASP. ASP.Net, Perl, JSP, Cold Fusion等等，选择属于你的那种然后开始<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这使得AJAX开发独立，因为所有的开发人员都能使用并且一起讨论相同的表现层<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done"><FONT face=Arial><BR>十大理由第十名：基于WEB的下一代RIA技术还没有出现<BR>     今天就使用XUL技术开发应用的人是伟大的，因为现在90%的浏览器还不支持这种技术，对于大多数的实际应用来说，使用这种技术不切合实际<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>然而，AJAX开发人员应该给出一部分的注意力在这些技术，如XAML 和XUL上<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>毫无疑问，这些技术将使开发富WEB应用变得简单<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>但是它们可能相互不兼容并且拥有不同的市场需求或动力<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A><BR>     在今后一段时间，AJAX技术将极大的提高WEB应用的可用性<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>AJAX技术并不完美，不是“火箭科学”许多的开发人员和技术公司始终在尝试RIA的其他更好的技术<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>而实际的问题是AJAX技术现在已经存在并且应用的很好，它跨浏览器、跨平台，而且不管是用户还是开发人员都喜欢它的作用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>特征鲜明的AJAX应用如<A href="http://www.xker.com/Html/zzclub/google" target=_blank><FONT color=#333333>google</FONT></A>地图已经成为了本领域的领导者（还有人使用MapQuest吗？）同样的，领先的财富500强使用AJAX技术并且贡献了开发工具给社区了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>一般来说，业内在使用AJAX技术上取得了一致并且正在使用它<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>再强调一次，RIA应用和WEB应用使用了AJAX获得的一个主要的优势不仅仅是开发人员的一个工具，而是一个现象：它改变了我们开发WEB应用的方式<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>没人能说得清楚在RIA应用方面，哪一种技术会取代它，会在什么时候取代它；但是很多因素都支持AJAX应用应该持续好多年<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT></DIV>
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done"><FONT face=Arial>     <BR>关于作者<BR>     Andre Charland从事Internet软件开始超过十年之久，他是eBusiness Applications (www.ebusinessapps.com)公司的主席和创建者之一<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他和Dave Johnson在1998年创建了该公司<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他主要的经验在可用性、市场、项目管理和基于构件的软件开发<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>所受教育包括：在Vancouver, BC的Simon Fraser University，他在那里读计算机科学和工商管理<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>他作为开发者、管理者和架构师等不同身份有上百个Internet项目的经验<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT></DIV>
<DIV twffan="done"><FONT color=#333333></FONT></DIV>
<DIV twffan="done">     原文链接</DIV>
<DIV twffan="done">     http://www.developer.com/java/other/article.php/3567706</DIV></FONT></DIV></FONT></DIV><img src ="http://www.blogjava.net/ajax/aggbug/28025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ajax/" target="_blank">ajax</a> 2006-01-14 14:56 <a href="http://www.blogjava.net/ajax/articles/28025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR让Ajax如此简单</title><link>http://www.blogjava.net/ajax/articles/28024.html</link><dc:creator>ajax</dc:creator><author>ajax</author><pubDate>Sat, 14 Jan 2006 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/ajax/articles/28024.html</guid><wfw:comment>http://www.blogjava.net/ajax/comments/28024.html</wfw:comment><comments>http://www.blogjava.net/ajax/articles/28024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ajax/comments/commentRss/28024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ajax/services/trackbacks/28024.html</trackback:ping><description><![CDATA[<P>Ajax，或者说是异步JavaScript和XML，描述了一种使用混合了HTML(或XHTML)和层叠样式表作为表达信息,来创建交互式的Web应用的开发技术;文档对象模型(DOM)，JavaScript,动态地显示和与表达信息进行交互;并且，XMLHttpRequest对象与Web<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>异步地交换和处理数据<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A> 
<P>因特网上许多例子展示了在一个HTML文件内部使用XMLHttpRequest与<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>端进行交互的必要的步骤<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>当手工地编写和维护XMLHttpRequest代码时，开发者必须处理许多潜在的问题，特别是类似于跨浏览器的DOM实现的兼容性这样的问题<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这将会导致在编码和调试Javascript代码上面花费数不清的时间，这显然对开发者来说很不友好<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P>DWR(直接Web远程控制)项目是在Apache许可下的一个开源的解决方案，它供给那些想要以一种简单的方式使用Ajax和XMLHttpRequest的开发者<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>它具有一套Javascript功能集，它们把从HTML页面调用应用<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>上的Java对象的方法简化了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>它操控不同类型的参数，并同时保持了HTML代码的可读性<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P>DWR不是对一个设计的插入，也不强迫对象使用任何种类的继承结构<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>它和servlet框架内的应用配合的很好<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>对缺少DHTML<A href="http://www.xker.com/Html/bcyy/index.html" target=_blank><FONT color=#333333>编程</FONT></A>经验的开发者来说，DWR也提供了一个JavaScript库包含了经常使用的DHTML任务，如组装表，用item填充select下拉框，改变HTML元素的内容，<FONT face=Verdana>如<div>和<span></FONT> 
<DIV twffan="done"><SPAN twffan="done">
<P></P>
<P>DWR网站是详尽的并且有大量的文档，这也是这篇文章的基础<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>一些例子用来展示DWR如何使用和用它的库可以完成什么样的工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P>这篇文章让读者看到了一个使用了DWR的Web应用是如何一步步建立的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我会展示创建这个简单的示例应用的必要的细节，这个应用是可下载的并且可以在你的环境中布署来看看DWR如何工作<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P>注意:找到有关Ajax的信息并不困难;网页上有几篇文章和博客的条目涵盖了这个主题，每一个都试图指出和评论这个概念的不同的方面<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>在资源部分，你会找到一些有趣的指向示例和文章的链接，来学习Ajax的更多的内容<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG>示例应用</STRONG></P>
<P>这篇文章使用的示例应用模拟了多伦多的一个公寓出租搜索引擎<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>用户可以在搜索前选择一组搜索标准<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>为了提高交互性，Ajax中以下两种情况下使用:</P>
<P>·应用通告用户配合他的选择会返回多少搜索结果<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这个数字是实时更新的-使用Ajax-当用户选择的卧室和浴室的数量，或者价格范围变化时<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>当符合标准的搜索结果没有或太多时，用户就没有必要点击搜索按纽<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P>·<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>查询并取回结果是由Ajax完成的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>当用户按下显示结果按钮时，<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>执行搜索<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这样，应用看起来更具响应了，而整个页面不需要重载来显示结果<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG><A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A></STRONG></P>
<P>我们使用的<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>是HSQL，它是一种占用资源很小的Java SQL<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>引擎，可以不需要安装和配置的与Web应用捆绑在一起<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>一个SQL文件被用来在Web应用的上下文启动时创建一个内存中的表并添加一些记录<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG>Java类</STRONG></P>
<P>应用包含了两个主要的类叫Apartment和ApartmentDAO<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>Apartment.java类是一个有着属性和getter/setter方法的简单的Java类<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>ApartmentDAO.java是数据访问类，用来查询<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>并基于用户的搜索标准来返回信息<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>ApartmentDAO类的实现的直接了当的;它直接使用了Java<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>联接调用来得到公寓的总数和符合用户请求的可用公寓的列表<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG>DWR配置和使用</STRONG></P>
<P>设置DWR的使用是简单的:将DWR的jar文件拷入Web应用的WEB-INF/lib目录中，在web.xml中增加一个servlet声明，并创建DWR的配置文件<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>DWR的分发中需要使用一个单独的jar文件<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>你必须将DWR servlet加到应用的WEB-INF/web.xml中布署描述段中去<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>    <servlet><BR><BR><servlet-name>dwr-invoker</servlet-name><BR><BR><display-name>DWR Servlet</display-name><BR><BR><description>Direct Web Remoter Servlet</description><BR><BR><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class><BR><BR><init-param><BR><BR><param-name>debug</param-name><BR><BR><param-value>true</param-value><BR><BR></init-param><BR><BR></servlet></FONT></P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>    <servlet-mapping><BR><BR><servlet-name>dwr-invoker</servlet-name><BR><BR><url-pattern>/dwr/*</url-pattern><BR><BR></servlet-mapping><BR><BR></P>
<P>一个可选的步骤是设置DWR为调试模式—象上面的例子那样—在servlet描述段中将debug参数设为true<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>当DWR在调试模式时，你可以从HTMl网页中看到所有的可访问的Java对象<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>包含了可用对象列表的网页会出现在/WEBAPP/dwr这个url上，它显示了对象的公共方法<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>所列方法可以从页面中调用，允许你，第一次，运行<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>上的对象的方法<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>下图显示了调试页的样子:</P>
<P><IMG style="WIDTH: 492px; HEIGHT: 327px" height=342 src="http://www.xker.com/Files/BeyondPic/2006-1/10/1723100.jpg" width=475 border=0 twffan="done"><BR><SPAN class=top11 twffan="done"><STRONG>调试页</STRONG> </P>
<P></P>
<P>现在你必须让DWR知道通过XMLHttpRequest对象，什么对象将会接收请求<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>这个任务由叫做dwr.xml的配置文件来完成<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>在配置文件中，定义了DWR允许你从网页中调用的对象<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>从设计上讲，DWR允许访问所有公布类的公共方法，但在我们的例子中，我们只允许访问几个方法<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>下面是我们示例的配置文件:</P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana><dwr><BR><BR><allow><BR><BR><convert converter="bean" match="dwr.sample.Apartment"/><BR><BR><create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO"><BR><BR><include method="findApartments"/><BR><BR><include method="countApartments"/><BR><BR></create><BR><BR></allow><BR><BR></dwr></FONT></P>
<P><FONT face=Verdana>上面的文件实现了我们例子中的两个目标<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>首先，<convert>标记告诉DWR将dwr.sample.Apartment对象的类型转换为联合数组，因为，出于安全的原因，DWR默认的不会转换普通bean<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>第二，<create>标记让DWR暴露出dwr.sample.ApartmentDAO类给JavaScript调用;我们在页面中使用JavaScript文件被javascript属性定义<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我们必须注意<include>标记，它指明了dwr.sample.ApartmentDAO类的哪些方法可用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></FONT></P>
<P><STRONG>HTML/JSP代码</STRONG></P>
<P>配置完成后，你就可以启动你的Web应用了，这时DWR会为从你的HTML或Java<A href="http://www.xker.com/Html/fwq" target=_blank><FONT color=#333333>服务器</FONT></A>端页面(JSP)上调用所需方法作好准备，并不需要你创建JavaScript文件<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>在search.jsp文件中， 我们必须增加由DWR提供的JavaScript接口，还有DWR引擎，加入以下三行到我们的代码中:</P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>  <script src='dwr/interface/ApartmentDAO.js'></script><BR><BR><script src='dwr/engine.js'></script><BR><BR><script src='dwr/util.js'></script></FONT></P>
<P>我们注意到当用户改变搜索标准时，这是Ajax在示例程序中的首次应用;正如他所看到的，当标准改变时，可用的公寓数量被更新了<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>我创建了两个JavaScript函数:当某一个选择下拉框中的值变化时被调用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>ApartmentDAO.countApartments()函数是最重要的部分<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>最有趣的是第一个参数, loadTotal()函数，它指明了当接收到服务端的返回时DWR将会调用的JavaScript方法<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>loadTotal于是被调用来在HTML页面的</P>
<DIV twffan="done">中显示结果<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>下面是在这个交互场景中所使用到的JavaScript函数: 
<P></P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>function updateTotal() {<BR><BR>$("resultTable").style.display = 'none';<BR><BR>var bedrooms = document.getElementById("bedrooms").value;<BR><BR>var bathrooms = document.getElementById("bathrooms").value;<BR><BR>var price = document.getElementById("price").value;<BR><BR>ApartmentDAO.countApartments(loadTotal, bedrooms, bathrooms, price);<BR><BR>}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>function loadTotal(data) {<BR><BR>document.getElementById("totalRecords").innerHTML = data;<BR><BR>}</FONT></P>
<P>很明显，用户想看到符合他的搜索条件的公寓列表<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>那么，当用户对他的搜索标准感到满意，并且总数也是有效的话，他会按下显示结果的按纽，这将会调用updateResults() JavaScript方法:</P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>function updateResults() {<BR><BR><BR><BR>DWRUtil.removeAllRows("apartmentsbody");<BR><BR>var bedrooms = document.getElementById("bedrooms").value;<BR><BR>var bathrooms = document.getElementById("bathrooms").value;<BR><BR>var price = document.getElementById("price").value;<BR><BR>ApartmentDAO.findApartments(fillTable, bedrooms, bathrooms, price);<BR><BR>$("resultTable").style.display = '';<BR><BR>}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #dddddd" face=Verdana>function fillTable(apartment) {<BR><BR>DWRUtil.addRows("apartmentsbody", apartment, [ getId, getAddress, getBedrooms, getBathrooms, getPrice ]);<BR><BR>}</FONT></P>
<P>updateResults()方法清空了存放搜索返回结果的表域，从用户界面上获取所需参数，并且将这些参数传给DWR创建的ApartmentDAO对象<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>然后<A href="http://www.xker.com/Html/sjk/index.html" target=_blank><FONT color=#333333>数据库</FONT></A>查询将被执行，fillTable()将会被调用，它解析了DWR返回的对象(apartment)，然后将其显示到页面中(apartmentsbody)<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG>安全因素</STRONG></P>
<P>为了保持示例的简要，ApartmentDAO类尽可能的保持简单，但这样的一个类通常有一组设置方法来操作数据，如insert(), update()和delete()<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>DWR暴露了所有公共方法给所有的HTML页面调用<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>出于安全的原因，像这样暴露你的数据访问层是不明智的<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>开发者可以创建一个门面来集中所有JavaScript函数与底层业务组件之间的通信，这样就限制了过多暴露的功能<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></P>
<P><STRONG>结论</STRONG></P>
<P>这篇文章仅仅让你在你的项目中使用由DWR支持的Ajax开了个头<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>DWR让你集中注意力在如何提高你的应用的交互模型上面，消除了编写和调试JavaScript代码的负担<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>使用Ajax最有趣的挑战是定义在哪里和如何提高可用性<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A>DWR负责了操作Web页面与你的Java对象之间的通信，这样就帮助你完全集中注意力在如何让你的应用的用户界面更加友好<A href="http://www.xker.com/" target=_blank><FONT color=#333333>。</FONT></A></SPAN></FONT></P></DIV></SPAN></DIV><img src ="http://www.blogjava.net/ajax/aggbug/28024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ajax/" target="_blank">ajax</a> 2006-01-14 14:47 <a href="http://www.blogjava.net/ajax/articles/28024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>