`
bbiao
  • 浏览: 70741 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

YUI的一些不足

阅读更多
称赞别人总是一件容易的事情,但是如果去批评别人,就要拿出十足的勇气和底气了,因为至今都没有把YUI的所有源代码都看一遍,所以不敢说那些是YUI的缺点,只能说是不足吧。通常别人在指正别人时,都会先夸奖别人一番,就是那些所谓的溢美之词,YUI的优点很多,是个很优秀的AJAX框架,在这里我就不客套了,直入主题。

第一,命名规则不统一。这一点主要体现在一些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,我会做出自己的努力~!为他尽一点自己的力量。
分享到:
评论
6 楼 melin 2008-09-17  
yui3以前的版本是有那样的情况。命名空间过长。写起来比较费事。
不知道可接触过yui3, 像jquery学习了不少
5 楼 bbiao 2008-09-16  
nogocn 写道
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?

YUI有一个动态加载机制,我不知道你说的慢下来是指程序运行时慢,还是加载慢?
4 楼 nogocn 2008-09-05  
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
3 楼 nogocn 2008-09-05  
使用EXT时觉得速度明显慢下来,只好放弃使用,请问楼主,YUI有这样的问题吗?
2 楼 caco 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"}]
1 楼 bbiao 2008-01-05  
刚看了YUI的代码,对于Container下的属性的配置,是不区别大小写的,所以可以把fixedcenter写成fixedCenter

相关推荐

    YUI 入门教程YUI 入门教程YUI 入门教程

    YUI教程YUI 入门教程YUI 入门教程YUI 入门教程

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

    yui_2.9.0前端UI

    YUI 库,全称Yahoo! UI Library。是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两...

    一些关于YUI的资源

    这个是YUI的稳定版本,新版本还在测试中。YUI在开发Ajax时能带来极大的方便。

    yui3-master.zip

    yui3-master.zip

    yuicompressor,给YUI Compressor添加右键命令

    可惜官网提供的版本都不具备右键功能,每次压缩都要cmd输入一些命令实在是繁琐,本文就介绍如何给YUI Compressor添加右键命令,方便使用。 网上已有一些网友写好的安装包,但对应的版本太低,目前最新最多人使用的...

    yuitest YUI测试工具

    YUI Test is a complete testing framework for JavaScript and Web applications. You can use the simple JavaScript syntax to write unit tests that can be run in web browsers or on the command line, as ...

    从YUI2到YUI3看前端的演变 pdf

    YUI3 引入了粒度更细的模块管理方式,通过异步 HTTP 请求加载模块、然后执行...YUI是个“学院派”的框架,以性能和严谨著称,易用性相对而言弱了一些。它能否在已经拉开的 JavaScript 框架大战中胜出,让我们拭目以待。

    yui_2.6.0r2

    yui_2.6.0r2 yui_2.6.0r2 yui_2.6.0r2 yui_2.6.0r2 yui_2.6.0r2

    js 压缩YUI

    雅虎的东西,简单的操作很好用 使用例子:java -jar D:\yuicompressor\yuicompressor\yuicompressor.jar E:\js\all.js -o E:\wap\wap2\js\all-min.js --charset utf-8 当然要装jdk了 不然就玩完了

    yui 资源包

    yui 源码下载,3.9.0 r2 包,最新版本

    从YUI2到YUI3看前端的演变

    从YUI2到YUI3看前端的演变

    YUI中文文档CHM

    YAHOO YUI 中文文档 AJAX 详细 比较好用

    yui压缩

    yui压缩

    YUI3 dialog组件

    基于YUI3的dialog组件该组件是基于YUI3开发的,功能强大,详细见http://www.qiqicartoon.com

    yahoo yui 实例教程

    利用Yahoo YUI库做的一个TREE实例,很详细的阐述了YUI的使用原理

    YUI CSS介绍文档

    一些基本代码和相关介绍。。内部有yui css 基本代码。。

    雅虎 用户接口库YUI

    YUI资料 雅虎 用户接口库 中文说明及如何使用学习 Yui组件分成2类:工具包和控件库 Yui 工具包 Yui 工具包利用DOM脚本来简化浏览器内的开发(in-browser devolvement),使用DHTML和AJAX的特性开发所有的Web程序。...

    YUI3 完整包

    Yahoo! UI Library (YUI) 是一个开放源代码的 JavaScript 函数库,为了能建立一个高互动的网页,它采用了AJAX, DHTML 和 DOM 等程式码技术。它也包含了许多 CSS 资源。

    yuicompressor-2.4.8.jar

    yuicompressor.jar是JS压缩工具、前端优化神器、yuicompressor-2.4.8.jar

Global site tag (gtag.js) - Google Analytics