`

雅虎 YUI 介绍

阅读更多
YUI(Yahoo User Interface)介绍在Web 2.0中,SaaS前端不再是一个简单网页。它可以拥有非常Cool的界面,它也可以拥有非常复杂的逻辑。现在,构建一个复杂的SaaS前段界面主要有下面三种技术路线:

DHTML(HTML,CSS,Javascript)
Flash Platform
Silverlight Platform
在选择DHTML技术路线的时候,Javascript/CSS就扮演着非常关键的角色。YUI是由Yahoo提供一个功能非常丰富的Javascript函数库。它在DHTML开发中扮演的角色就类似于微软FCL在.NET平台中的角色。自从两年前开始使用YUI来开发我们项目,本人对YUI有了一定的了解。这篇博文将简单的介绍YUI的基本情况

YUI是由雅虎工程师们(现在已经成为雅虎开发者网络YDN中的一个关键组成部分,并得到了雅虎的合作创始人杨志远的鼎力支持)发起的旨在构建一个富交互的Web应用程序的函数库。它遵循BSD License来开发自己的软代码。基本上都可以做为个人和商业开发应用。由于其拥有非常丰富的组件和功能,它经常用于企业级网站的开发。其实雅虎现在的主页就是基于YUI进行开发。使用YUI来开发的成功案例有下面一些网站:

http://www.yahoo.com
http://www.igoogle.com (Google 用了YUI中的Grids CSS)
http://showroom.labs.autodesk.com (本人参与开发的一个网站,完全基于YUI进行开发的)
你还可以通过YUI的官方博客了解到更多的YUI成功案例。这个博客会每个月发布一篇文章列举这个月比较成功的YUI案例。

从2006年开始发布YUI开始,雅虎已经发布了多个主要版本。在2009年9月份,雅虎发布了最新的YUI版本--YUI 3.x。在这个新的YUI版本中,雅虎对YUI库进行了一个非常彻底的重构,并且引入了很多新的功能,比如支持插件开发,提供小巧的基础库(现在大概6.2K)。相信这个也是雅虎通过学习很多其他JS函数库(如JQuery)的成功经验后吸收进入的YUI中的。毕竟YUI以前版本的体系结构是在5年前设计的。在这个5年时间里面,Javascript函数库设计领域已经出现了很多非常好的设计理念。在接下来的一节我将介绍一下YUI 3.x的整个体系结构。

组织结构

整个YUI 3.x函数库包含下面几个独立的层次(有低层向高层的顺序):

YUI Seed层:这是一个使用YUI函数库必须要包含的层次。它包含基本的YUI名字空间定义、动态加载JS/CSS资源的机制以及进行模块依赖性判断的功能。任何一个网站要想使用YUI函数库的功能,都得包含这个层次。然后利用这个层次提供得功能动态加载其他需要得模块。这个层次定义在一个非常小(大概6.2K)JS文件(YUI-min.js)中。所以加载这个层次的速度非常快。这个层次包含下面三个模块
YUI Base:定义基本的YUI名字空间和全局函数
Get:提供动态加载JS和CSS资源的功能
Loader:包含所有YUI模块的基本元信息和依赖关系计算器,并利用它们来动态加载其他所有的YUI模块。在这个加载过程中,Loader会尽可能的压缩Http请求的个数以提高动态加载的速度
YUI Core层:这个层次提供作为一个JS库必须要包含的基本功能,如对于DOM元素和DOM树进行操作的功能,面向对象编程的功能等。另外YUI在这个层次还提供一个非常重要的机制--事件机制。YUI其他的很多模块都依赖于事件机制。用户和可以利用YUI提供的事件机制来编写事件驱动程序。我认为事件机制是YUI中非常独特的部分。利用它可以大大方便我们编写低耦合JS模块。当然事件机制也会引入一定的性能开销。下面列出这个层次包含的基本模块
Node:定义了对基本DOM元素的包装类。它包含Node Base,Node List, Node Style和Node Screen类。
DOM:定义了对DOM树进行操作的基本类。比如DomBase,DomStyle,DomScreen。另外它还包含了一个对DOM树进行查询、筛选的关键类--Selector。
OOP:提供面向对象的JS开发模型。
Event:提供基本的事件机制。
YUI 组件框架(Component Framework)层:这层定义YUI组件的框架,为所有基于YUI的组件(包括雅虎自己开发和第三方开发)提供了一个统一的平台。程序员可以利用这个平台来开发低层辅助工具(Low-level Utilities) 或者高层UI(Hight-level UI)。这个平台提供下面一组接口和规范:
Attribute:该模块提供统一的属性设置和查询的机制。对于YUI的任何组件,都可以利用这套机制来添加自己的属性。属性是YUI中的一个非常核心的概念。简单的说,它其实就是JS类中的以成员变量。但是YUI对这些成员变量提供了一组非常丰富和灵活的操作方式。比如你可以在设置这些成员变量的时候触发某些事件或者调用某些注册好的函数。
Base:该模块提供所有YUI组件最基本的接口和规范。它是所有YUI组件的基类,提供如组件属性设置/查询和事件相关的接口。
Widget:该模块定义了一个基本的UI组件接口和规范。它构建在Base模块之上,提供UI组件的生命周期管理和相关的属性。
Plug-in:这个模块定义了插件开发的基本结构和规范。比如Plugin名字空间等等。任何YUI的插件都是基于这个模块开发的。
YUI Components层:这层包含所有YUI自己提供的UI组件和辅助类。它是YUI中内容最多的部分,包含下面部分:
Amination:该模块包含各种雅虎自己定义的动画效果,它们被经常用于构建各种Cool的UI界面!该模块还包含一个Amination的Plug-in类用来给第三方进行自定义的动画效果开发。
Drag and Drop:该模块包含各种雅虎自己定义的拖放效果,它也是很多UI界面的必需品。同样,该模块也包含一个给第三方开发拖放效果的Plugin基类。
Cookie:该模块是用于对Cookie进行读写操作和管理的辅助类。
JSON:该模块用于JSON格式处理的辅助库。由于JSON格式的简单、易用性。现在很多客户端和服务器端的通讯都基于JSON格式。所以对JSON格式的处理成为各个JS库的必备模块。它主要包含生成JSON字符串和解析JSON字符串两个类
IO:用于网络通信的IO模块。对应Web程序而已,它的IO处理主要就是和后台服务期通信功能。这个模块包含AJAX、SWF-based 跨域请求和文件上传功能。
其他模块:随着YUI 3.x的发展,雅虎和第三方开发商会添加越来越多的YUI组件
实例解说

在解释完YUI 3.x体系结构后,我们可以用来自YUI官方博客中的一个例子来解释怎样快说使用YUI 3.x。

例子:如何让HTML页面上的一个元素拥有拖放效果

第一步:在HTML页面中包含最基本YUI Seed层代码

<script type="text/javascript" src="http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js"></script>

第二步:动态添加拖放效果模块到我们的HTML页面并应用到相应的元素上面

<div id="demo">I'm draggable.</div>

<script type="text/javascript" src="http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js"></script>
<script>
YUI().use('dd-plugin', function(Y) {
    Y.one('#demo').plug(Y.Plugin.Drag);
});
</script>
完成上面两步就可以让这个HTML页面中ID为"Demo"的DIV元素拥有拖放效果了。从这个例子也可以看出YUI 3.x的易用性比以前的版本已经有很大提高了。前端开发者的学习曲线不会那么陡峭。

参考文档

最后,我列出一组链接。大家要是对YUI感兴趣,我相信大家能从这里得到更多细节

YUI官网:http://developer.yahoo.com/yui/
YUI官方博客:http://www.yuiblog.com/
分享到:
评论

相关推荐

    雅虎YUI组建

    **雅虎YUI组件详解** 雅虎用户界面库(Yahoo! User Interface Library,简称YUI)是雅虎公司推出的一款开源JavaScript和CSS框架,旨在帮助开发者构建高性能、可扩展的前端应用。YUI包含了丰富的组件,包括布局管理...

    yui_3.0.0(雅虎官方)

    **YUI 3.0.0:雅虎官方JavaScript库详解** YUI,全称Yahoo! User Interface Library,是雅虎公司开发的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展且易于使用的Web应用程序。YUI 3.0.0是这个库的一个...

    雅虎 用户接口库YUI

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

    YUI3 dialog组件

    **YUI3 Dialog组件详解** YUI3是Yahoo!推出的一款强大的JavaScript库,它提供了丰富的UI组件和工具,用于构建高性能、跨平台的Web应用程序。Dialog组件是YUI3中的一个重要部分,它允许开发者创建可交互的弹出窗口,...

    yui3-master.zip

    User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为Web开发者提供了丰富的功能和工具,以创建交互性强、性能优秀的网页应用。YUI3是YUI库的第三个主要版本,着重于模块化、轻量化以及性能优化...

    雅虎的YUI_API

    最新YUI API,做的不是很完美,但还是能用的。另外由于YUI的API太多,所以会感觉有一点点慢。

    yui.rar 例子

    User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”,深入探讨YUI的核心特性、模块化设计以及在实际开发中的应用。 ...

    yui 资源包

    User Interface Library,是由雅虎公司开发的一个开源JavaScript库,它旨在简化Web应用程序的构建,特别是对于界面设计和交互效果的实现。在3.9.0 r2这个版本中,YUI提供了丰富的组件和工具,帮助开发者创建高效、...

    yuicompressor-yui compressor

    雅虎推出的一款javascript压缩工具。有JAVA版本和.NET版本。 yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ----------...

    YAHOO yui2.7 文档+ 代码+例子

    YUI 2.7提供的文档详尽介绍了每个组件的用法,包括API参考、教程和示例代码,对于初学者来说是极好的学习资源。通过文档,开发者可以快速上手,并理解如何将YUI应用到实际项目中。同时,示例代码有助于直观地展示...

    YUI3.6文档及示例

    User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web应用程序。YUI3.6版本是该库的一个重要里程碑,提供了丰富的组件和工具,以支持现代Web开发的需求。在这个...

    YUI JS CSS 打包工具

    这款工具由雅虎(Yahoo!)开发,是其开源项目的一部分,广泛应用于Web开发领域。 在Web开发中,原始的JS和CSS文件往往包含大量空格、注释和换行符,这些在源代码中有助于提高可读性,但在实际部署时会增加页面的...

    YUI3.7.3 最新版本 带API

    User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的网络应用程序。YUI3.7.3是YUI的一个特定版本,它在发布时被视为最新的版本,提供了许多改进和新功能。 在...

    yui_2.6.0r2

    User Interface Library,是雅虎公司推出的一个开源JavaScript库,旨在帮助开发者构建高质量、高性能的Web应用程序。YUI 2.6.0r2是该库的一个重要版本,它包含了丰富的组件和工具,为前端开发提供了强大的支持。 ...

    yui js压缩工具

    YUI Compressor是一款强大的JavaScript和CSS压缩工具,由雅虎(Yahoo!)开发并开源。它的主要功能是通过删除代码中的空白符、注释以及不必要的字符,将文件大小压缩到最小,从而提高网页加载速度,减少网络带宽消耗...

    YUI.rar_html_javascript YUI_yui_yui javascript

    YUI是雅虎公司开发的一个开源JavaScript库,它为Web开发者提供了丰富的工具和组件,以构建高效、可扩展的网页应用。这个压缩包"YUI.rar"包含了YUI的源代码以及相关的HTML和JavaScript示例,展示了如何利用YUI库创建...

    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-ajax框架开发文档

    User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web应用程序。YUI的核心在于提供了一系列模块化的组件,包括DOM操作、事件处理、动画效果、Ajax交互等,使得...

    yui_2.5.2 类库

    YUI广泛应用于大型网站和应用,如雅虎自身的产品,以及许多其他企业的项目。它可以用于创建富互联网应用(RIA)、响应式布局、移动应用等,提供了强大的功能支持。 6. **与其他库的比较** YUI与jQuery、Prototype...

    YUI2 库与例子都有了

    User Interface Library)是雅虎公司开发的一个开源JavaScript库,用于构建富互联网应用程序(RIA)。YUI2是该库的第二个主要版本,它提供了丰富的组件和工具,帮助开发者轻松实现页面布局、动画效果、数据处理等...

Global site tag (gtag.js) - Google Analytics