`
decentway
  • 浏览: 157884 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

YUI:globle object

阅读更多

YUI模块是YUI3中的单一核心,所有需要使用YUI3的页面都必须包含该 
模块,该模块提供加载功能,可以使用该功能动态加载指定模块,其依 
赖模块会被自动加载,所以YUI模块可以看成YUI的一个种子。 

YUI模块创建了一个全局对象:YUI,一个页面可以共享一个YUI实例,也 
可以使用多个实例。 

 

 

YUI模块是所有YUI3.x实现的核心基础。所有使用YUI的页面都需要引入YUI模块。只把YUI模块引入后,就可以开始编写YUI代码了。 YUI模块有【加载功能】和【依赖关系分析功能】。这两个功能是YUI实现最核心的功能。你提供所需的YUI模块列表和使用这些模块的代码,在这些代码执行之前,YUI会自动发送一个优化的HTTP请求,加载需要用到的模块和组件。虽然你可能也会使用YUI模块中加载script和css的功能,但是 YUI模块的核心目的是作为一个基础,为更高级的应用提供支持。

YUI模块创建一个全局的YUI对象。这个对象可以被实例化,它被用于创建YUI实例,然后把不同的功能模块绑定到该YUI实例上。一个页面可以共享一个YUI实例,也可以为不同的功能使用不同的YUI实例。

使用YUI Global 对象

为什么使用命名空间

YUI核心

Use方法

模块列表

用YUI.add创建一个自定义的模块

装载器Loader

 

为什么使用命名空间

1.向后兼容:

2.沙盒技术:

3.版本兼容:

4.更加动态:

5.强大的选择器:

6.事件标准化:

YUI核心

YUI Global Object是一个可实例化的对象,允许你创建任意个你需要的YUI实例。

Component 和Module区别:

1.先从字面意思上理解
Component   是组件
Module 是模型

2.从形态上来看,模块和组件都是相对稳定的代码的一种称呼。
但是从实际的功能范围上来看,组件一般来说是实现某一种功能或者某一个功能的某一个细节的稳定的相对独立的类,而模块则至少有一个组件组成,也就是说模块的覆盖范围要比组件更大一些,它可能有多个组件组成,甚至除了组件之外还有很多相对稳定但并不会提供独立功能的代码一起来构成。
这就是两者的差别。

 

 

 

YUI 3 COMPONENT MODULE
Array Operations array
YUI Core core
JavaScript language helper methods lang
Periodic execution method later
Logging support log
Object Operations object
Browser Sniffing ua
YUI Object yui
Dynamic script and css loading get
YUI Loader loader


Use方法简写: 
使用*加载所有的模块: 
YUI().use('animation', function(Y) { 
    // Y.Anim is available 
}); 

静态加载vs动态加载 
当检测到缺少依赖文件时,YUI自动试图完成自身加载。当动态加载以来文件时,传给use的回调函数将会异步执行。如果你静态包含所有库(或者通过其他方式之前加载好的),use()方法的回调函数将同步执行。回调函数的目的就是执行是否同步不重要。如果动态加载的,代码立刻追踪use语句将无法访问任何的加载模块。你可以通过设置YUI配置引导bootstrap阻止YUI自动试图获取缺失依赖文件。 

 

用YUI.add创建一个自定义的模块

待完成。。。

装载器Loader

对于Loader,有效的配置选项如下:

lang:首选语言列表,as BCP 47 language tags,对首选项排序。loader使用这个列表来决定选择哪个语言,也可以加载必要的资源包。参考Internationalization模块获得更多信息。

base:base路径

 

secureBase:The secure base dir (not implemented)

 

comboBase:

root:

filter:应用于结果urls的过滤器。这个过滤器为所有模块修改默认路径。YUI 库的默认的路径是最小化(压缩后)的版本(例如,event-min.js)。过滤器属性可以是一个预定义的,也可以是自定义的。有效的预定义过滤器是:

DEBUG:选择库的调试版本(例如,event-debug.js)。

RAW:选择库的非压缩版本(例如,event.js)。

例如加了 { filter: 'raw' }之后,head里面的js:


不加 filter: 'raw' ,加载的都是min版。


你也可以定义一个自定义的过滤器,它必须是一个包含一个查询表达式和一个替换字符串的对象常量:

myFilter:{

'searchExp':"-min\\.js",

'repalceStr':"-debug.js"

}

combine:

ignore:永远也不动态载入的模块列表

force:即使已经在当前页面上出现了,也在需要时候加载

insertBefore:插入点,

charset:

jsAttributes:

cssAttributes:

timeout:

context:

modules:配置模块列表,有效的模块配置数据如下:

name:必须的,组件的名字。

type:必须的,组件类型(js or css)

path:

fullpath:

requires:这个组件需要的模块数组

optional:这个组件可选的模块

supersedes:这个组件所代替的模块列表

after:

rollup:

lang:

groups:

 

 Lang

var Y = YUI();

// true, an array literal is an array
Y.Lang.isArray([1, 2]);

// false, an object literal is not an array
Y.Lang.isArray({"one": "two"});

// however, when declared as an array, it is true
function() {
    var a = new Array();
    a["one"] = "two";
    return Y.Lang.isArray(a);
}();

// false, a collection of elements is like an array, but isn't
Y.Lang.isArray(document.getElementsByTagName("body"));

// true, false is a boolean
Y.Lang.isBoolean(false);

// false, 1 and the string "true" are not booleans
Y.Lang.isBoolean(1);
Y.Lang.isBoolean("true");

// null is null, but false, undefined and "" are not
Y.Lang.isNull(null); // true
Y.Lang.isNull(undefined); // false
Y.Lang.isNull(""); // false

// a function is a function, but an object is not
Y.Lang.isFunction(function(){}); // true
Y.Lang.isFunction({foo: "bar"}); // false

// true, ints and floats are numbers
Y.Lang.isNumber(0);
Y.Lang.isNumber(123.123);

// false, strings that can be cast to numbers aren't really numbers
Y.Lang.isNumber("123.123");

// false, undefined numbers and infinity are not numbers we want to use
Y.Lang.isNumber(1/0);

// true, objects, functions, and arrays are objects
Y.Lang.isObject({});
Y.Lang.isObject(function(){});
Y.Lang.isObject([1,2]);

// false, primitives are not objects
Y.Lang.isObject(1);
Y.Lang.isObject(true);
Y.Lang.isObject("{}");

// strings
Y.Lang.isString("{}"); // true
Y.Lang.isString({foo: "bar"}); // false
Y.Lang.isString(123); // false
Y.Lang.isString(true); // false

// undefined is undefined, but null and false are not
Y.Lang.isUndefined(undefined); // true
Y.Lang.isUndefined(false); // false
Y.Lang.isUndefined(null); // false

 

  • 大小: 13.8 KB
  • 大小: 21 KB
分享到:
评论

相关推荐

    yui_2.9.0前端UI

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

    yui_2.9.0用于javascript基础教程

    适合图灵程序设计丛书web开发系列-javascript基础教程的学习使用

    yui:最小的vim配色方案

    yui:最小的vim配色方案

    nodejs-yui:这是带有yui的node.js

    nodejs-yui 这是带有yui的node.js 首先在您的计算机上安装node.js。 将此文件解压缩到目录中。 从终端窗口进入目录并运行'npm install'可能是需要此权限的sudo用户权限。 运行“节点服务器”。 转到

    chosen-yui:选择 JS -- 转换为 YUI

    选择-yui 使用,请确保获取原生 js 文件, 和 。 那么你都准备好了。 使用 selected.yui.js 而不是 selected.prototype 或 selected.jquery 他们 (HarvestHQ) 正准备发布 ChosenJS 的完全原生版本,所以我不打算...

    yui2.9

    NULL 博文链接:https://lsqwzz.iteye.com/blog/1228250

    Yui:一款由eris和love打造的超棒Discord机器人!

    Yui,这是一个由node.js和discord.js构成的Discord机器人。 自托管机器人 我不支持或鼓励对该机器人进行自我托管。 此处的代码用于学习和提高透明度。 只要您遵守许可,我们都不会在乎您是否托管自己的Yui版本。 ...

    yui:IRKit中的智能生活

    ui yasuda用户界面-IRKit中的Smart Living安装npm install开始npm start结构(假设) | | | | 消费类电子产品

    discord-bot-Yui:游戏设计IP宇宙的不和谐机器人

    Discord-bot-Yui “游戏设计界”的Discord机器人 设置 转到不和谐网站上以生成您的令牌并将其复制到config.json 按“开始”,您将看到“就绪”并享受它! 公告 更新2021/03/23 基本功能设置。

    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 入门教程YUI 入门教程YUI 入门教程

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

    高效WEB前端开发之路:YUI3.15

     本书作者便是在此背景下,以国外最优秀的JavaScript框架之一——Yahoo User Interface Library(简称YUI)的最新版本YUI 3.15为基础编写而成。本书通过通俗易懂的语言和大量丰富的实例,帮助读者解决实际生产环境...

    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了 不然就玩完了

    JavaScript YUI 2.8: DataTable jquery form 异步请求显示数据分页

    NULL 博文链接:https://pouyang.iteye.com/blog/581021

    generator-yui3:YUI3项目脚手架

    (尚未稳定)YUI3项目的Yeoman发电机安装sudo npm install -g generator-yui3建立专案yo yui3 awesomeProject.generator-yui3.json 允许您覆盖默认配置{ "project" : "awesomeProject", "lang" : ["fr", "en", "es",...

    yui 资源包

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

    yui3-master.zip

    yui3-master.zip

    yuicompressor-2.4.8.jar

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

    雅虎 用户接口库YUI

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

    yuitest:YUI测试

    YUITest JavaScript测试库 建造 要构建JavaScript文件,请在javascript目录中运行此文件: ant all 构建一个NPM软件包 要构建npm软件包(输出到javascript / build / yuitest / npm),请在javascript目录中运行此...

Global site tag (gtag.js) - Google Analytics