??xml version="1.0" encoding="utf-8" standalone="yes"?>在线视频尤物,av在线不卡播放,а√在线中文在线新版http://www.aygfsteel.com/mechiland/World in my view is a word of my viewzh-cnSat, 17 May 2025 16:14:21 GMTSat, 17 May 2025 16:14:21 GMT60正本清源Q所谓Ajax输出的三UŞ?/title><link>http://www.aygfsteel.com/mechiland/archive/2005/12/30/25984.html</link><dc:creator>Michael Chen</dc:creator><author>Michael Chen</author><pubDate>Fri, 30 Dec 2005 01:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/mechiland/archive/2005/12/30/25984.html</guid><wfw:comment>http://www.aygfsteel.com/mechiland/comments/25984.html</wfw:comment><comments>http://www.aygfsteel.com/mechiland/archive/2005/12/30/25984.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mechiland/comments/commentRss/25984.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mechiland/services/trackbacks/25984.html</trackback:ping><description><![CDATA[<a >QuirksBlog: The AJAX response: XML, HTML, or JSON?</a><br> <br> 早先q篇文章在TSS上脓(chung)出的时候,我很快的览Q便一眼看文章作者所处的角度。事实上QAJAX概念的不完整和不严密性——异步的JavaScript + XML——导致作者将AJAX的输出分ZU类型:XML, HTML片断和JSON对象字符丌Ӏ?br> <br> 首先看XML。对于RPC的数据传输,XML从来都是当仁不二的选择。对于将对象序列化ؓXML字符串的方式Q往往有两U选择Q一U是对象本w的属性作点进行输出,一U是利用语言的元数据Ҏ(gu)进行序列化输出。两者存在较大不同。对于第一U,输出案例如下Q?br> <br> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">books</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">book</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">JavaScript, the Definitive Guide</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">O'Reilly</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">author</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">David Flanagan</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">author</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">cover </span><span style="color: rgb(255, 0, 0);">src</span><span style="color: rgb(0, 0, 255);">="/images/cover_defguide.jpg"</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">/></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">book</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">book</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">DOM Scripting</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Friends of Ed</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">author</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Jeremy Keith</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">author</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">cover </span><span style="color: rgb(255, 0, 0);">src</span><span style="color: rgb(0, 0, 255);">="/images/cover_domscripting.jpg"</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">/></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Praesent et diam a ligula facilisis venenatis.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">book</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">books</span><span style="color: rgb(0, 0, 255);">></span></div><br> <br> 而对于第二种Q输出案例如下:<br> <br> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">list</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">java.util.List</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">map</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">yourapp.domain.Book</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">title</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">JavaScript, the Definitive Guide</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">O'Reilly</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">author</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">David Flanagan</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">cover</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">/images/cover_defguide.jpg</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br><br>    </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">map</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>    </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">map</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">yourapp.domain.Book</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">type</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">title</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">DOM Scripting</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">publisher</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Friends of Ed</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">author</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Jeremy Keith</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">cover</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">/images/cover_domscripting.jpg</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">blurb</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br>        </span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);">Praesent et diam a ligula facilisis venenatis.</span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">string</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br><br>    </span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">map</span><span style="color: rgb(0, 0, 255);">></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">list</span><span style="color: rgb(0, 0, 255);">></span></div><br> <br> 前一U一般来说是同一q程内(同一JVM内)对对象进行序列化和反序列化的Ҏ(gu)Q在XML-Javal定一cȝ框架中比较多见,例如XStream, JiBX, Castor{等。当同一q程内能够找到对象具备的正确cdӞq种序列?反序列化设计和实现都不太困难Q而且针对I值处理也比较Ҏ(gu)?br> <br> 可以看出Q由于这U方式成本较低,有大量成熟的开源库可用Q加上在AJAX中的X(ML)的“理论”指gQ许多开发者采用这U方式将对象输出l前台浏? 器,然后利用览器的XML能力q行输出昄。从那篇文章中可以看出,q种工作是纯_的dirty work, q且׃领域模型或者DTO的不同,输出的xmll构含义也不同,在对I值的处理上更是麻烦,在处理显C逻辑的时候,基本上很隑֜客户端对以这U方式传? 的XML以一U统一的方式进行还原。以q种方式来进行AJAX开发,规模应用还不能昑և弊端Q但是大规模应用出现Q领域对象较多时Q必然出现怨言。而我 们用AJAX的真实意囑ƈ非来无趣地去解析各种各样的XMLQ而是需要XML中代表的数据。至于XML是什么样子,除了调试阶段Q没有h会关心?br> <br> W二UXML的序列化方式是绝大多数跨q程q程调用协议/框架所采取的方式。SOAP/WebService如此QXMLRPC如此QBuffalo采用 的Burlap也如此。这U远E调用的特征是,在协议约定的条g下,调用方和被调用方需要保证数据语义的完整性。拿什么保证?是数据定义信息了。这些协 议的共同特征是采用谋一些标记来描述数据cdQint, long, float, string, list...q样定义完成后,只要Ҏ(gu)协议QQ何语a都能以一U通用的方式对数据q行q原。AJAX引擎的概念也渐渐呈现——通过某一U协议,他就? 于中间的位置Q负责将调用方的h包装为协议,转化为执行方能够理解的动作加以执行;然后执行结果{化ؓ协议的|传递给客户端,客户端引擎将协议内容 解析够理解的对象l构传递给客户端,然后可以利用这个数据来昄了。XML-RPC如此QWebService如此QDWR如此QJSON如此Q? Buffalo也如此?br> <br> lg所qͼUa使用领域模型特定的输出XML传递给客户端是一U相当原始的做法。他只在很低的层ơ上印证了所谓AJAX的概c然而,q种概念的深入思维l果便是一个AJAX引擎?br> <br> 文中提到的第二种输出方式QHTML——应该被看作WEB的一个特例,应该说这是历史因素、浏览器能力、设计者等多方因素辑ֈ的一个^衡。许多历史应? 中,大多采用页面进行一定规则的分割Q然后include或者jsp 2.0 tagfile的方式对公共区域q行处理Q留下一部分进行动态显C。这里D一个例子:查询Q显CZc列表。传l做法就是上面一个搜索条件输入文本框Q下 面是搜烦l果列表Q处于同一个页面。原来的搜烦方式每次提交都要h整个面Q用户体验不太好Q现在需要改q。按照激q的Ajax做法应该是当搜烦按钮? LQ调用bookSearchService.search(String terms)的方法,取得l果列表Q然后Ajax引擎处理l果数据Q将数据反序列化为javascript对象Q开发者利用这些对象,要么利用DOM, 要么利用JavaScript Template, 在页面对搜烦l果q行展示。然而,问题出现了:<br> <br> 搜烦l果太多了,用DOM操作速度太慢Q?br> 开发者h手不够,没有旉Q而这个页面以前写q;<br> <br> 那么出现q种情况Ӟ很可能的做法便是Q见原来那个搜烦l果面刨去其他不相q的部分Q留下搜索结果部分,然后利用一个resultDiv.innerHTML=xmlhttp.responseText完事。这样做Q既辑ֈ了改善体验的效果Q也提高了开发速度?br> <br> 输出HTML另外一U方式文中也没有提及。事实上QHTML不仅仅作为片断,更重要的是作为页面视囄一部分。在buffalo的demo中,可以看到所 有的面都被理h了,buffalo接管了视囄切换Q这U设计也存在于gmail/163新版邮箱中。这个应用比上面的HTML片断的用方式还? 重要Q因里是~存可以介入的地斏V通过不同的缓存策略,可以用L实际和心理等待时间大大减,从而进一步改善用h作体验,提升产品竞争力? QPS. 在Buffalo 1.3中将加入客户端缓存模块,无需你动手,buffaloZ~存视图Q?br> <br> 文中提及的第三种方式QJSONQ根据第一部分的描qͼ应该比较清楚了。实际上他扮演了一个Ajax引擎的角艌Ӏ这里不得不提的是,使用JSON的相当危 险的。因Z的协议表C语言本nl定太死。如果某一天,JSON协议变化了,那么使用JSON的应用基本上不可能应对这个变化——因回结果是 eval()得到的。而Buffalo协议隐藏v来了Q?.2版本甚至q服务器端的ServiceInvoker都将burlap实现依赖隔离开。现? 使用burlapQ也许某一天不用了Qbuffalo的应用照样可以运行。因为里面的l节都是透明的,作ؓ开发者,你只需要关注数据对象本w,而非用来? q对象的那一堆字W?img src ="http://www.aygfsteel.com/mechiland/aggbug/25984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mechiland/" target="_blank">Michael Chen</a> 2005-12-30 09:16 <a href="http://www.aygfsteel.com/mechiland/archive/2005/12/30/25984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax/Amowa框架Buffalo 1.2发布http://www.aygfsteel.com/mechiland/archive/2005/12/27/buffaloRelease12.htmlMichael ChenMichael ChenTue, 27 Dec 2005 10:35:00 GMThttp://www.aygfsteel.com/mechiland/archive/2005/12/27/buffaloRelease12.htmlhttp://www.aygfsteel.com/mechiland/comments/25615.htmlhttp://www.aygfsteel.com/mechiland/archive/2005/12/27/buffaloRelease12.html#Feedback2http://www.aygfsteel.com/mechiland/comments/commentRss/25615.htmlhttp://www.aygfsteel.com/mechiland/services/trackbacks/25615.html
* 支持览器前q后退Q这个特性几乎可以在型应用中替换MVCQ?br> * 重写了整个服务调用模?br> * 重写了Spring集成代码Q集成Spring更加Ҏ(gu)
* 重写了burlap的依赖,U除了特定版本的burlap-fix.jar。无需M变动Q现在可以在resin app server中用buffalo了?br>
Buffalo Ajax/Amowa Framework是一个全新的q程调用/Web框架。他可以向JSON/DWR一P被应用ؓ一个webq程调用框架Q简化web客户端与服务器端的调 用(buffalo的API更加单!Q;也可以在型应用中承担页面切换的dQ基?lt;a >OPOA</a>的概念,? buffaloZ理面切换Q在大型应用中,buffalo也可以在其中承担面无刷新获取数据的工作。Buffalo bindinglg能够一致性地数据绑定到htmllg上,也可以绑定到JavaScript Template的模版上。目前已l有若干真正的商业应用在不同层面应用了buffalo。在q个版本中,buffalo提供了全面的文档Q丰富的发行 包,成熟的DemoQbuffalo已经Z业应用作了充分的准备?br>
Buffalo站点Qhttp://www.amowa.net/buffalo/
演示Qhttp://demo.amowa.net/buffalo-demo/index.jsp
下蝲Qhttp://www.amowa.net/buffalo/index.html?page=download



Michael Chen 2005-12-27 18:35 发表评论
]]>
վ֩ģ壺 | ʯ| | ɰ| Ȩ| п| | | | | ֶ| | | | | ʡ| ˮ| | | | ɽ| ػʵ| ɽ| | ڳ| | | | | | ۩| | Դ| | ǿ| Զ| | | | | ʯ|