浏览 5782 次
锁定老帖子 主题:YUI的一些不足
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-05
第一,命名规则不统一。这一点主要体现在一些Widget的Configuration Attribute和一些CSS样式名上。举一个简单的例子,在YAHOO.widget.Panel的配置属性中,close表示一个Panel是否可以被关闭,是否可以有关闭按钮,draggable代表这个Panel是否能被拖动,同样是Boolean的属性值,但是一个用了动词一个用了形容词,我不知道老外是否也把close和draggable的词性看的一致,反正在我看来,觉得不是很好。还有就是有些属性值使用了“骆驼”的命名方式,即非第一个单词的首字母大写,如Panel中的dragOnly属性,但是另一些属性却没有,如fixtoviewport、fixedcenter。CSS样式中也存在着同样的问题,你可以看到yui-panel和yuimenu这两种不同的命名方式。 带来的危害:程序员总是希望有着统一的命名方式,不想在记住属性名称记住相应的命名规则。 第二,继承体系不唯一。这一点主要体现在所有的Widget没有实现单根继承上。像TabView和TreeView就没有一个共同的祖先,TabView继承YAHOO.util.Element,而TreeView没有父类,只是用一些像EventProvider来丰富了自己。而Container中的一些组件又继承自YAHOO.widget.Overlay。这其中的混乱还体现在一些类只是用另一些类来“丰富”自己,通过YAHOO.lang.augment方法,而一些类却是继承了别的类,通过YAHOO.lang.extend方法。 带来的危害:不同的继承体系使得YUI中不同的组件构造的过程变得不一样,有些是通过YAHOO.util.Config的方式,有些是通过YAHOO.util.AttributeProvider的方式,这样去扩展YUI的组件变得相当的不方便,你需要去了解许多种不同的组件配置和初始化的方式。 当然,如果你只是把YUI集成到自己的应用当中,第二点对于你来说也许没有多大关系,但是你如果潜心想去扩展YUI,我想第二点是一个很另人头痛的事情。这里不得不夸一夸EXT,单根继承,Component模式,使得EXT中的widget的设计十分成功。真的很希望YUI不要再把不同的widget看成不一样的组件来对待,应该把这些子项目看成一个统一的子项目,重新去设计和实现,毕竟对于一个Ajax框架,UI部分的优劣很容易影响一个人对他的选择。 不过,我还是很喜欢YUI,我会做出自己的努力~!为他尽一点自己的力量。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-05
刚看了YUI的代码,对于Container下的属性的配置,是不区别大小写的,所以可以把fixedcenter写成fixedCenter
|
|
返回顶楼 | |
发表时间:2008-07-30
YUI的tree和DataTable中的id都必须使数字?
没有看YUI的代码,只是在做的时候发现用字符来做id就不能显示,不知道这个问题是不是真正的问题 例如下面这个tree的数据中,nodeid就必须为数字,换成aaa就无法显示 [{"level":"1","parentId":"root","nodeId":"1216882251392","nodeName":"aaa"}, {"level":"2","parentId":"1216882251392","nodeId":"1216882251330","nodeName":"bbb"}] |
|
返回顶楼 | |
发表时间:2008-09-05
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
|
|
返回顶楼 | |
发表时间:2008-09-05
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
|
|
返回顶楼 | |
发表时间:2008-09-16
nogocn 写道 使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
YUI有一个动态加载机制,我不知道你说的慢下来是指程序运行时慢,还是加载慢? |
|
返回顶楼 | |
发表时间:2008-09-17
yui3以前的版本是有那样的情况。命名空间过长。写起来比较费事。
不知道可接触过yui3, 像jquery学习了不少 |
|
返回顶楼 | |