使用Dojo的痛苦经历
关键字: dojo2007年6月项目准备开始了,刚来到一个新的项目组,什么都是新的,除了我自己。
需要一个新的框架来开发项目,香港的同事决定使用Dojo,DWR, 我开始学习使用dojo,时间很短,但是我还是基本上熟悉了dojo的基本控件和架构。在此基础上搭建起了项目的基本框架。这是一个单页面,基于ajax和dojo widget的系统,一切都那么的新奇,又充满挑战,但是既然dojo有这么多后台,又有香港同事的推荐,我显得自信满满。
框架搭建的同事,也开始后了紧锣密鼓的招兵买马,一起都像是从零开始。陆陆续续,招了5个程序员和一个测试员。开始了整个项目的快速开发,由于需求由香港负责,而且需求做的比较细致,基本上问题很少。Dojo 却是麻烦不断。
首先的一个坏消息是当我们做完了几乎全部300个页面的时候,dojo宣布0.43不在得到支持,取而代之是完全不同的dojo0.9。 而且dojo0.9 还不是稳定的版本,问题多多,让我们骑虎难下,最后还是决定按兵不动。 随之而来,是dojo1.0,dojo1.1 的陆续发布,但是一直都无法让我看到希望的曙光。 与之相对的是ext在国内的广泛使用和热烈追捧。
Dojo 的控件有很多奇怪的地方,日期选择控件的行为非常怪异,与国内的使用习惯很不相同。而且样式极其丑陋,当字体放大缩小的时候更是丑陋。显示的格式和保存的格式需要分别指定。我们修改了大量的代码。
dojo 的下拉框也被用户投诉,过滤之后一定要再选择一次或者按回车才能选定结果,前台值和后台值分开操作也带来很多不变。
dojo 的验证文本框颜色现实有bug,我们不得不修改代码
dojo的对话框也有问题,对话框中无法在弹出对话框。对话框的操作和控制很不灵活。
js代码不利于管理,容易发生命名冲突。
致命的问题发生在项目的后期,在客户的系统进行测试时发现。dojo的性能非常差,在赛扬2G的电脑上,一个页面显示的时间竟然需要17秒。简直就是噩梦。
另外使用dojo的对话框时出现cpu占用100%而且一直不回落下来。
页面载入完成的时候,它有将整个页面重新刷新一次,又需要花费额外的5到8s时间,不仅花费更多的时间,而且严重影响客户体验。
还有开发过程中碰到的无数问题,虽然一个一个被解决,但是无疑是一次一次痛苦的煎熬。
最后,在性能面前,我被dojo彻底打败,如此的速度是任何客户都无法忍受的,客户不可能为了这个系统全部升级电脑cpu。而且还有很多未知的问题可能还没有被发觉,不如内存泄露,可能导致资源耗尽,内存耗尽。cpu 的占用可能在使用时间长了之后越来越高,等等,这些都是我担心的问题。
使用Ajax或者说Rich client,一定要谨慎啊。使用新的技术和框架,一定要谨慎,这是我的教训,希望给同行们一个参考。
评论
自从去年年头小弟初接触YUI-EXT/EXT以来,幸得各方玩家和用户的厚爱,(省去铺垫的前言...)
这一切,当然与Ajax大潮渐起之时势密切相关。对于开发者来说,最引人入胜的莫过于层出不穷的Ajax框架了。由于JavaScript语言自身的特殊性,造成了各框架之间的设计风格之间的迂回不同——这虽说不上百家争鸣,但亦算琳琅满目,——甚至给人花多眼乱的感觉。但激动人心的开源JS 库却不多,较典型库有Dojo、Ext了。这些之中,最令人嗤嗤称奇的恐怕就是Jack Slocum的EXJ库了。EXT最初以基于BSD许可的YUI库为基础,利其跨浏览器的方案,以及Observeavle观察者模式的事件系统,再进一步拓展,并只限UI组件方面的拓展,如Layout、Grid、Tree 等等。从Jack去年一人单枪匹马开发,到现在各大厂商为其用户(可平滑集成到ADOBE AIR内),以及社区的反馈来看,EXT可谓后起之秀。——不过,状况就会如此地顺利下去吗?
可以预测,实力、财力雄厚的Dojo自然不会立即被斩下马,新一轮的冲击波(1.0)值得期待。“野人(yahoo)”怀里的YUI有大师级人物Douglas Crockford压阵,岂会只配被别人扩展的命?JQuery速度跃进之后,下一欲占领的高度正是UI;Ajax.Net更是大部分MS开发者不二之选择。
edit:2007-7-22
DOJO在BS结构中的地位类似于MFC在CS结构中的地位, 而prototype, jquery等轻量级的JS框架类似于BASIC在CS结构中.DOJO1.1是目前为止体系最完善,功能最强, 扩展性最高的JS框架.它瞄准的应用是RIA.无论从性能上, 还是从体系上, DOJO1.0 同 DOJO 0.9之前的版本相比有天壤之别.当然高性能的东西学习起来要时间长一些. 但是随着学习的深入, 前期投入的时间在开发调试的后期会加倍的补偿回来, 尤其是在一些需要持续开发,升级的项目中.随着RIA应用的普及, 类似DOJO的重量级的JS框架会越来越重要. STRUCT集成DOJO的事实已经清楚的表明DOJO在业界的地位. 只是DOJO的文档还比较差, 而且几乎都是ENGLSIH, 这局限了在国内的应用. 好在这种情况在迅速改变, DOJO的文档在最近已经有了很大的改观.
RIA的应用不可避免地要频繁AJAX请求, 和大量的JS程序. 合理使用DOJO的一些技术, 比如 cache, build, lazy load, local storage, etc可以极大地提高速度.在这方面, DOJO提供的多种工具应该可以满足绝大部分的应用.在目前国外的应用中, DOJO1.1的性能, 包括速度,扩展性和稳定性已经得到公认的赞扬. 当然最重要的还是好的程序结构. DOJO强大的功能可以充分保证实现复杂的结构.
尽管DOJO还有许多需要改进的地方, 但是可以毫无疑问地说, 基于DOJO体系设计的严密和完整, DOJO将会是将来市场中几个统治性的JS框架之一.
如果让dojo蔓延每个页面,容易形成依赖关系
页面开发强调的应该是开发效率和开发的灵活性,而不是页面的美观
顶楼上的
就很想说怎么不用yui,学习人家js架构也是瞒不错的
说dojo好的人的能力比较强,看中的(猜得)是dojo的易扩展性,能改成一个适合自己的样子,我不熟悉dojo,觉的dojo比较适合“个性化”,widget和render等等全是要自己去做。我猜在一些高手眼中,dojo就是一种框架了(猜得)。dojo的licence太宽松了,这可能就是大家用它的原因之一。
同意。以前用dojo就是自己扩展,可惜时间和能力有限,做出来的东西和人家Ext一比...唉。
http://cats-tiger.javaeye.com/blog/160169
如果让dojo蔓延每个页面,容易形成依赖关系
页面开发强调的应该是开发效率和开发的灵活性,而不是页面的美观
其实开源的东西有时候需要自己优化它!不完全拿来就用。
2007年6月项目准备开始了,刚来到一个新的项目组,什么都是新的,除了我自己。
需要一个新的框架来开发项目,香港的同事决定使用Dojo,DWR, 我开始学习使用dojo,时间很短,但是我还是基本上熟悉了dojo的基本控件和架构。在此基础上搭建起了项目的基本框架。这是一个单页面,基于ajax和dojo widget的系统,一切都那么的新奇,又充满挑战,但是既然dojo有这么多后台,又有香港同事的推荐,我显得自信满满。
框架搭建的同事,也开始后了紧锣密鼓的招兵买马,一起都像是从零开始。陆陆续续,招了5个程序员和一个测试员。开始了整个项目的快速开发,由于需求由香港负责,而且需求做的比较细致,基本上问题很少。Dojo 却是麻烦不断。
首先的一个坏消息是当我们做完了几乎全部300个页面的时候,dojo宣布0.43不在得到支持,取而代之是完全不同的dojo0.9。 而且dojo0.9 还不是稳定的版本,问题多多,让我们骑虎难下,最后还是决定按兵不动。 随之而来,是dojo1.0,dojo1.1 的陆续发布,但是一直都无法让我看到希望的曙光。 与之相对的是ext在国内的广泛使用和热烈追捧。
Dojo 的控件有很多奇怪的地方,日期选择控件的行为非常怪异,与国内的使用习惯很不相同。而且样式极其丑陋,当字体放大缩小的时候更是丑陋。显示的格式和保存的格式需要分别指定。我们修改了大量的代码。
dojo 的下拉框也被用户投诉,过滤之后一定要再选择一次或者按回车才能选定结果,前台值和后台值分开操作也带来很多不变。
dojo 的验证文本框颜色现实有bug,我们不得不修改代码
dojo的对话框也有问题,对话框中无法在弹出对话框。对话框的操作和控制很不灵活。
js代码不利于管理,容易发生命名冲突。
致命的问题发生在项目的后期,在客户的系统进行测试时发现。dojo的性能非常差,在赛扬2G的电脑上,一个页面显示的时间竟然需要17秒。简直就是噩梦。
另外使用dojo的对话框时出现cpu占用100%而且一直不回落下来。
页面载入完成的时候,它有将整个页面重新刷新一次,又需要花费额外的5到8s时间,不仅花费更多的时间,而且严重影响客户体验。
还有开发过程中碰到的无数问题,虽然一个一个被解决,但是无疑是一次一次痛苦的煎熬。
最后,在性能面前,我被dojo彻底打败,如此的速度是任何客户都无法忍受的,客户不可能为了这个系统全部升级电脑cpu。而且还有很多未知的问题可能还没有被发觉,不如内存泄露,可能导致资源耗尽,内存耗尽。cpu 的占用可能在使用时间长了之后越来越高,等等,这些都是我担心的问题。
使用Ajax或者说Rich client,一定要谨慎啊。使用新的技术和框架,一定要谨慎,这是我的教训,希望给同行们一个参考。
不过要有js高手 而且需要些是时间
现在ajax框架有点泛滥 而稳定的 被大家接受的没有几个,贸然选择很可能导致项目延期或者失败,所以在选择这些不成熟框架的时候一定要格外谨慎
反正是标准技术做的,就应该老老实实地straightforward,或者只专注做好UI.(找个几个美工强的会画画的去dojo画组件)
顶楼上的
就很想说怎么不用yui,学习人家js架构也是瞒不错的
说dojo好的人的能力比较强,看中的(猜得)是dojo的易扩展性,能改成一个适合自己的样子,我不熟悉dojo,觉的dojo比较适合“个性化”,widget和render等等全是要自己去做。我猜在一些高手眼中,dojo就是一种框架了(猜得)。dojo的licence太宽松了,这可能就是大家用它的原因之一。
至于加载的性能问题,已经可以通过package解决了。我做了个页面有自己的组件,2个menu,一个datagrid,打包加载后1.7秒,比原来的5.5秒快了很多。
顶楼上的
就很想说怎么不用yui,学习人家js架构也是瞒不错的
http://developer.yahoo.com/yui/
当前版本2.5.1
YUI做界面的一些东西,Prototype处理下后台交互。。。还有啥搞不定的。。
dojo至少给了你选择,ext,jquery呢。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 11993 次
- 性别:

- 来自: 地球

- 详细资料
搜索本博客
我的相册
共 2 张
最近加入圈子
最新评论
-
使用Dojo的痛苦经历
我目前选择DOJO,主要是LICENSE问题,但是DOJO的文档不全让我觉得很烦 ...
-- by cjim -
使用Dojo的痛苦经历
Ajax UI之乱弹 自从去年年头小弟初接触YUI-EXT/EXT ...
-- by sp42 -
使用Dojo的痛苦经历
想不到国内有这么多人关注DOJO, 感谢KELLEY的引子.谈谈自己, 一个JS ...
-- by 3rd eye -
使用Dojo的痛苦经历
fkpwolf 写道个人认为一般的web页面用标准的html模式开发就足够了 如 ...
-- by pyzheng -
使用Dojo的痛苦经历
shatuo 写道KKFC 写道dojo的朋友们,不要自己骗自己了 顶楼上的 就 ...
-- by cats_tiger






评论排行榜