`
ibmsoft
  • 浏览: 9879 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Dojo vs YUI / YUI-EXT vs Prototype / Scriptaculous vs Mochi

阅读更多
关于 

Dojo vs YUI / YUI-EXT vs Prototype / Scriptaculous vs Mochikit vs JQuery

的比较!

作者的建议是现在最好的选择是用yui-ext

dojo 虽然有ibm的支持,但是目前不是很成熟!
分享到:
评论
14 楼 linginfanta 2007-05-11  
比较看好yui-ext.
13 楼 dlee 2007-03-19  
人民邮电出版社已经出版了一本《征服Ajax:Dojo、Prototype、script.aculo.us框架解析与实例》,写的很不错。想要了解Dojo的朋友找来看看吧。

http://www.dearbook.com.cn/book/129224
12 楼 sp42 2007-03-18  
"用客户端的方式理解browser"
说得好,对于我们开发者,这是Ajax给我们带来最大的变化。以往我们都是用Server"供及"给Client,Client完全没有主导地位。Ajax的做法则是把这种做法调转过来
11 楼 fsword 2007-03-18  
我认为dojo对于基于js的RIA拥有比较好的理解,比其它方案更加完整和贴近w3c的思路,因此可以考虑以dojo为基础搭建应用,如果有必要,也可以融入其它方案。

我现在的做法是以dojo为基础,结合jsonrpc的方式,用客户端的方式理解browser。
谈到dojo的缺陷,我们在开发中也遇到了,不过问题不大,如果不是为了能够接受后面新版本的功能,改一个bug也不是很难(我自己学js也时间不长,带的人也都是,边做边学习)。现在的困难是我的E文不好,不然的话,采用与dojo团队协作的方式比较好。

另外,以后如果有可能,我希望能够整合GWT和flash,毕竟前者能够有效的利用swing开发人员的工作,后者是多媒体支持不可越过的工具。
10 楼 dlee 2007-03-12  
Dojo有问题是肯定的。我的意思只是说,不要那么主观看待问题。既要看到它的缺点,也要看到它的优点。这个话有点像鬼话,我就不多说了。

在目前来说,Dojo确实没有达到产品级的品质,这主要是它的Widget这个部分,稳定性还不够,另外性能也有一些问题。dojo.io、dojo.lang、dojo.event还是很稳定的。

所以目前做产品开发,基于yui-ext是一个更好的想法。但是最好保持对于Dojo的关注,因为它背后得到的支持是最大的。Dojo的核心开发人员已经注意到了这些问题,正在努力解决。

在一个开源软件尚未成熟之前,没有必要把它说死。我在2001年就支持Mozilla,并且与一些人争论,那个时候Mozilla还是个丑小鸭呢。

jindw说的Dojo对于代码的侵入性,我不是非常理解,因此希望他能进一步解释一下。我也是抱着学习的态度来讨论,想在这里向大家偷学几招。

不过在我看来,如果对于一个基于HTML/CSS/DOM开发的Widget来说,首先要考虑的并不是对于原有代码的侵入性(侵入性、IoC对于JavaScript或者Ruby这类动态语言,如何来定义,我也不是很清楚),而是对于原有页面的侵入性。
Unobtrusive是一种对于DHTML组件设计水平的判断标准。按照这个标准设计的组件,可以比较无痛地应用在现有的页面中,而不需要对页面做很多的改动。
Unobtrusive JavaScript在即将出版的《ppk on JavaScript》中有介绍。

to jianfeng008cn:
去年主要是介绍了几本Ajax图书进来,希望对于国内的Web前端开发者有所帮助。另外我还要忙我们的产品开发,实在抽不出身。Ajax中国网站的可用性问题非常严重,我们会努力解决的。
9 楼 dengyin2000 2007-03-11  
dojo 中确实存在许多的bug。我们现在在做的一个RSS-READER项目,其实也就是用到了dojo的TreeV3 Dailog InlineEditor组件,和event io里面的东西。TreeV3我们改了许多。而且dojo自己也承认treeV3的DND现在还存在许多的问题。有时候老是会出现一些奇怪的问题。反正现在很不爽。
8 楼 jianfeng008cn 2007-03-11  
dengyin2000 写道
建议不要用dojo。 现在项目中用dojo搞死人了。用用dojo的event io之类的还是可以。 widget千万不要用。


说得很好啊,至少给别人是一种参考,当然也许在高人的眼里是“你们”实力不够拉,让很多人在使用之前先有点“自知之明”也是好的吧。
7 楼 jianfeng008cn 2007-03-11  
dlee 老大,能否就你提及的概念做一些简洁的介绍,哪怕从哪拷贝一段也行啊,反正都提了出来了吗,我网上也找过,但还是怕理解不对啊,这样就没有讨论的前提了,结果我说了半天,可能结果先被批概念理解错误,这样总是不好的嘛
dojo的这大段英文在我看来,好象他要做w3c没做的标准一样的,通过dojoml和js以及dojo的解释引擎做一个通用的UI方案来一样,但是不管“目标如何高尚”做出来的东西都要好用啊,比如js这一块,我感觉现在ajax开发最头痛的就在这点了,这点都解决不好谈别的也就意义不大了,就好比“空想社会主义”拉。

ps:还有国内的各位js大拿有没有好的ajax的项目可以参考,或者好的ajax的开源项目,ajax中国这个网站我去过,个人感觉体验很差哦
6 楼 dlee 2007-03-10  
to jindw:
你最好举一个例子来说明,好吗?

如果说对于DHTML开发,所谓的Unobtrusive是首先需要认真考虑的问题,其他的还在其次。
5 楼 jindw 2007-03-10  
侵入就是说在你的代码里面加入太多自身逻辑之外的东西。

比如说ejb侵入严重,而spring是无侵入的框架。

目前来说,脚本这块我还没看到那里有什么好的无侵入的管理框架。
这也是我开发jsi的一个原因(干掉Dojo也是一个原因^_^)
4 楼 dlee 2007-03-10  
你们说的侵入性是什么?你们理解什么叫做Unobtrusive吗?Dojo与Unobtrusive有很大的冲突吗?
3 楼 dlee 2007-03-10  
呵呵,看看这个吧。
Ajaxian.com创建人Dion Almaer的一个访谈:
http://www.infoq.com/interviews/Dion-Almaer-Ajax;jsessionid=B7DEED54515D0917DF0FCBBD6F4DF040

注意看一下这个问题:
So tell us a little about the JavaScripts frameworks, how do they work and what is the best one out there?

Dion的回答:
Yes, so I mentioned the Dojo toolkit and Prototype and one of the things that those libraries do is that remoting layer, and we've already talked about the benefits there, but they also offer a lot more. So for example on the Dojo site it's a very mature, open source framework that gives you a whole set of packages, so if you're a Java guy you see these doc name space kind of looking packages. They give you the IO package which is to use for XHR Ajax request, gives you the graphics packages which allows you to do graphical effects, movements, and things like that, there's a whole widget API which allows you to build little reusable widgets and all you have to do then is actually use a HTML markup based language so this sounds more like XUL (pronounced 'zool') and XAML on the Microsoft side that allows you to just say div type equals or it's actually Dojo type equals editor and then Dojo automatically goes in and builds a very rich wysiwyg editor tool or kind of like a word based editor tool, so there's a whole notion of widgets.

There's also additions to the language itself, to JavaScript, so there's a Dojo.lang that gives you things like mix ins so if you're using languages like Ruby and the others like that, you'll like to mix in code from other objects and say "Hey, the code is in that object and that one, put them all together and allow me to have access to them right here. A lot of other language exceptions can go with it, one of the most important is actually the fact that JavaScript unfortunately doesn't have name spaces by default, so this means that you can get tons of collisions as you have different functions and things that are going on, anyone can rewrite those functions because JavaScript allows you to, anytime, add methods, take them away from an object or put them on to a type. So even if you have a thousand objects that are in the vm if I had the method foo to the type of var all of the objects instantaneously get that method added.

It's dangerous to not have these name spaces, so Dojo adds this name space routine so what you end up doing is that in different packages you say Dojo require the widget or whatever, Dojo require the XHR object. Whatever you need from within this large Dojo system you require and it only downloads the code you need on the fly right then so you don't have to download this massive library. Dojo has a whole bunch of these different kinds of name spaces, they cover everything. Another really cool one that you always end up using is the event package and what's cool about that is another one of the problems between IE and Firefox is the dom events are different in different areas.

Normally you have to write code so on Firefox it gets passed this event, on IE I have to get this event this way instead. And Dojo totally abstracts that away from you. And allows me to be able to say: Dojo connect to this dom element, to this node and if anything changes on that node run this function so I can do something dynamically. Even cooler than that you can do AOPsh stuff, you can say if this function ever gets code run this function as well so I can do stuff. So you can do JavaScript AOP and go really crazy. Then there's logging as well and things like that. Logging, what does that mean?

In JavaScript that means that instead of doing the alarm boxes to try and debug you have a little div in your application in debug mode and then as it goes through and different events happen you log out and they show up in that little div, so you can kind of capture what's going on. So that's you know just a few of the mirriad of name spaces that are out there for Dojo. A lot of people kind of think "ah, it's just a little Ajax thing", but it's a lot more and it's a lot of things you achieve wish you had in JavaScript. So then there's Prototype, and Prototype is a smaller framework and most people know it because it's coupled to Ruby on Rails, it's coupled from the stand point that Rails uses Prototype, it's not coupled from the standpoint that if you're writing Java you couldn't use Prototype. You can totally use it.

So Prototype has the same abstractions over XHR kind of things, it also has a bunch of effects, and it adds a lot of language things just like Dojo does in its module. So it actually looks very similar to Ruby in some things you can do so you can say: array dot each function and each element just like you do in Ruby. A lot of these things are kind of added, a lot of functions, it's all about making life easier for you. But then what everyone talks about is the $ function and so what that means is that JavaScript allows you to have a function literally named $, you couldn't do that in other languages and so you end up writing dollar sign open...the element id or actually even a node itself and it can only go and get a document element by id if it's a string that you past in and you can give multiple within that.

So it's kind of funny because it looks kind of Pearlish in some way because you got this 'dollar sign' function which makes shortcuts for everything. And then Prototype with these effects, there's another library called Scriptaculos that kind of add all these effects. The effects were put into Prototype first from this guy called Thomas Fuchs who kind of created Scriptaculos and the original prototype ones, and that's what you see all over the place with yellow fade techniques, things moving around, wobbling, and all these kind of crazy effects that are out there.

我对Dojo也没有什么偏向,也认为yui-ext的前景很好。不过建议各位最好将Dojo尽力在解决的问题先搞搞清楚,不要这么主观。日本文化又怎样?Ruby是日本人创造的,因为这个就完全拒绝Ruby吗?
2 楼 jindw 2007-03-10  
就凭Dojo这个名字(一种日本文化元素,日本传统相关的,相扑学校还是什么的),我就会避而远之。

还有他的风格,一个让人郁闷的前缀:Dojo。
而且一旦用了他,那么你的每个脚本中隔不了几行就得叫声Dojo。

生怕别人不知道你再用他的框架似的。

侵入严重,以后想从这个框架里面迁移出来,更是问题。
1 楼 dengyin2000 2007-03-08  
建议不要用dojo。 现在项目中用dojo搞死人了。用用dojo的event io之类的还是可以。 widget千万不要用。

相关推荐

    dojo/js/css 压缩打包工具 - 桌面版

    该工具可按指定的方案合并、压缩dojo或符合dojo规范的js文件、压缩css文件。 使用方便,无需安装配置, 下载置入dojo源码下的任意目录即可一键完成打包压缩. 该工具可自动分析HTML文件生成打包方案,自动排除没有用到的...

    JavaScript libraries--->jQuery, Prototype, Mootools, YUI, Extjs, Dojo

    在给定的标题"JavaScript libraries--->jQuery, Prototype, Mootools, YUI, Extjs, Dojo"中,提到了五种著名的JavaScript库:jQuery、Prototype、Mootools、YUI和ExtJS。这些库都有各自的特性和优势,下面将详细介绍...

    dojo-release-1.9.0-src.zip dojo javascript库源码

    在"dojo-release-1.9.0-src.zip"这个压缩包中,我们获取的是Dojo 1.9.0版本的源码,这对于开发者深入理解Dojo的工作原理、定制组件以及优化性能有着极高的价值。 首先,Dojo的核心概念是模块化。它采用了AMD...

    dojo必须的包-dojo-release-1.3.0

    《Dojo 必备包:dojo-release-1.3.0 深度解析》 Dojo 是一个广泛使用的开源JavaScript库,它提供了一系列强大的工具和功能,用于构建富交互式的Web应用程序。在这个主题中,我们将深入探讨的是Dojo的核心发布版本...

    Struts2 jar包下载struts2.3.16

    commons-fileupload-1.2.1.jar//文件上传时用的,为了以后用到,最好加入 commons-io-1.3.2.jar//同上 commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar struts2-core-2.2.1.1....

    dojo-release-1.9.1-src

    本压缩包"dojo-release-1.9.1-src"包含了Dojo 1.9.1版本的源代码,对于开发者来说,深入理解其内部结构和工作原理具有极高的价值。 1. **模块化设计** Dojo Toolkit遵循AMD(Asynchronous Module Definition)规范...

    dojo-release-1.4.2-src.tar.gz

    标题中的"dojo-release-1.4.2-src.tar.gz"是一个特定版本的Dojo Toolkit源码压缩包,属于JavaScript库的范畴。Dojo Toolkit是一个强大的、开源的JavaScript库,广泛用于构建富互联网应用程序(RIA)。这个版本是...

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

    JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools

    cometd-archetype-spring-dojo-jetty7-2.8.0-RC1.zip

    【标题】"cometd-archetype-spring-dojo-jetty7-2.8.0-RC1.zip" 提供的是一个开源项目构建模版,主要用于创建基于CometD、Spring、Dojo以及Jetty 7的应用。这个压缩包的核心是帮助开发者快速搭建一个实时Web应用,...

    dojo精品中文教程(包一)

    Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...

    dojo精品中文教程(包二)

    Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...

    dojo精品中文教程(全)

    Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...

    Dojo 1.10版离线参考手册

    Dojo 是一个强大的JavaScript工具包,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作到数据管理,从动画效果到AJAX通信等各个方面。在Dojo 1.10版离线参考手册中,我们可以深入了解到这个版本的详细信息和使用...

    dojo-release-1.6.1-src.zip

    标题 "dojo-release-1.6.1-src.zip" 指的是 Dojo 框架的一个源码版本,这是在2011年发布的1.6.1版本。Dojo 是一个广泛使用的JavaScript库,它提供了丰富的功能和工具,帮助开发者构建高性能、可维护的Web应用程序。...

    dojo-release-1.2.1-demos

    "dojo-release-1.2.1-demos" 是一个针对Dojo 1.2.1版本的示例集合,非常适合学习者深入了解Dojo框架的各种用法。 1. **Dojo 框架概述** Dojo 框架由Dojo Toolkit组成,包含了大量模块,如dojo.js,它提供基础的DOM...

    dojo精品中文教程(包三)

    Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...

    dojo-release-1.10.4

    "dojo-release-1.10.4"是Dojo框架的一个稳定版本,发布于2015年,它提供了大量的功能和改进,以支持开发人员构建高效、响应式的网页应用。 1. **Dojo核心模块**:Dojo的核心模块包括`dojo/_base`,它包含了基本的...

    dojo-release-1.12.2-src.zip

    在本文中,我们将详细探讨`dojo-release-1.12.2-src.zip`这一版本的源代码内容,以及其背后的核心技术和设计理念。 首先,`dojo-release-1.12.2-src.zip`是一个未压缩的源代码包,包含了Dojo Toolkit 1.12.2版本的...

    Dojo构建Ajax应用程序源码(包括书中用到的dojo-release-1.1.2)

    这个压缩包包含了Dojo框架的一个早期版本——dojo-release-1.1.2,它对于了解Dojo的历史和学习Ajax应用程序的构建非常有价值。在JavaScript的世界里,Ajax(异步JavaScript和XML)技术允许网页在不刷新整个页面的...

Global site tag (gtag.js) - Google Analytics