论坛首页 Web前端技术论坛

AJAX的实践和感言

浏览 20173 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-07-03  
今天在google的时候又读了一边 《AJAX 的7宗罪》。开始有了同感。
从去年10月开始WPX项目(WPX是我们公司一个完全用Java实现的海量邮件系统产品,除了Java什么语言都没用)的时候,我就定下了全面采用AJAX作为Web表现的主要技术。不得不承认,这是受到了Gmail的严重影响。
我们从0开始接触AJAX,体会到了不少令人兴奋的地方,但也步履坎坷。毕竟是第一次用,开发组的成员都不熟悉。我自己亲手写了前期大多数的JS的类。很多现在还在用,有些已经优化了。但需要优化重构的地方还是非常多。
说实话最终AJAX带来麻烦跟带来的用户体验提升一样多。唯一我现在绝对体会到的好处是,Ajax减少了页面的美工量,呵呵。因为大多数的操作都在一个页面上进行,而不用刷新到另外一个page上。
Ajax带来的麻烦主要是在效率上。大量的JS在用户初始的登陆时占用了大量的网络带宽。同步的HttpRequest会在网络不稳定的时候将浏览器锁死,而异步的HttpRequest调用会将代码的结构复杂化。
我现在的意见是,Ajax用在小地方,小kit,很出彩,但整体框架中采用ajax则要冒很大风险。WPX将继续Ajax的使用,不会动摇——一不作二不休。:P

我感觉到Ajax的概念走偏了。其初宗是好的,但环境并不成熟。HttpRequest在个个浏览器中表现得并不成熟;Javascript本来就只是停留在小脚本层面的技术。而XML简直就是累赘。

但Ajax的火暴也是必然的。
大量B/S应用程序以几何技术增长的同时,其丑陋的交互性一直在勾引人们对C/S的怀旧情结。当然,没有人愿意回到必须对数千、数万个已经部署的客户端软件进行手工升级的窘境。况且,升级的服务器版本还要保持完全与旧有的客户端兼容。在Web时代,没有这个问题。你在这一秒更新了一个logo图片,下一秒的所有访问者都能享受到新的更改。然而B/S从原理上根本无法給客户带来很好的交互性体验。于是java Applet、ActiveX、NC、Java Web Start、Ajax、Flash RIA陆续登场。
然而,Java applet太弱智。ActiveX由于绑定MS平台而不受欢迎(还有更多的安全性问题)。NC是跟上帝跟IT业界开的玩笑。Java Web Start成了叫好不叫座的实验派电影。
现在来看Flash RIA也被看好。毕竟Flash已经成为唯一被所有浏览器默认接受的plugin。但遗憾的是,尽管它几乎与浏览器完全相同的占有率,依然还只是个Plugin而已。只要你是plugin,你的一切功能就将与本地硬盘决裂,你的性能就一定要制约。我很看好Flash RIA的模式,但不认为Flash RIA能够成为主流。因为它不OPEN,只是一个特定厂商的独有的技术。它不会得到全行业的支持。没有全行业的支持就不会成功,除非你是微软或者IBM。

看起来只有身负“7宗罪”的Ajax能担当此任了。它比Java Applet漂亮,比ActiveX开放,也不像Flash RIA有那么多人眼红。
   发表时间:2006-07-06  
“。。。我感觉到Ajax的概念走偏了。其初宗是好的,但环境并不成熟。HttpRequest在个个浏览器中表现得并不成熟。。。。”

LZ的这话我极为赞成,我在公司的一个项目中也采取了AJAX。起初总监要求使用AJAXPRO(.NET)来实现一些本来在服务端实现的内容,该项内容需要载入最多时能达到100K流量的数据。呵呵,后来经我努力说服总监使用简单的HttpRequest请求在客户端载入,数据在服务端缓存,Request一个ASPX的页面,由这个页面完成数据的输出,这样的应用在局部小范围来说是比较容易维护的。真如果在站点中大量使用,像LZ说的,体验上升的同时,带来的代码体系结构完善的工作量肯定是很大的。
0 请登录后投票
   发表时间:2006-07-09  
只想表述一个观点.

引用
我现在的意见是,Ajax用在小地方,小kit,很出彩,但整体框架中采用ajax则要冒很大风险。


我现在的意见是,如果你仅仅是了解Ajax那你就用在小地方,但整体框架中采用ajax,那你需要不断的修炼内功.
0 请登录后投票
   发表时间:2006-07-11  
感觉用zul好爽
0 请登录后投票
   发表时间:2006-07-11  
用ajax 最好在后台放个select 自动判断浏览器 根据不同浏览器 访问略有不同的js css.

这就是代价 通用性 html > css > js
0 请登录后投票
   发表时间:2006-07-12  
winterwolf 写道
用ajax 最好在后台放个select 自动判断浏览器 根据不同浏览器 访问略有不同的js css.

这就是代价 通用性 html > css > js


这主意不错。
0 请登录后投票
   发表时间:2006-07-12  
cocoon 自带 浏览器选择器 BrowserSelector

<mapselect type="browser">
  <mapwhen test="netscape">
  ....
  </mapwhen>
  <mapwhen test="explorer">
  ...
  </mapwhen>
  ...
  <mapotherwise>
  ...
  </mapotherwise>
</mapselect>
0 请登录后投票
   发表时间:2006-07-13  
为什么不是使用相对成熟并且强大得多的第三方库呢?

比如Dojo,Buffalo之类
0 请登录后投票
   发表时间:2006-07-14  
引用
NC是跟上帝跟IT业界开的玩笑


NC是什么?这句话啥意思,没看懂!
0 请登录后投票
   发表时间:2006-07-16  
无疑,dojo和YUI这类UI框架可以帮助你完成大量工作,可以迅速构建你想要的页面
还有我比较看好的Flex和Laszlo,这两个基于Flash的框架可以让你大吃一惊
现在的UI框架完全有能力让你在大型应用中完全采用AJAX以及实现超绚的效果
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics