相关标签

学习 YUI3 中的沙箱机制

简化了一下 YUI3 中的沙箱实现 方式: if (typeof Sandbox === ‘undefined’ || !Sandbox) { Sandbox = function(o) { var self = this; if (!(self instanceof Sandbox)) { // 允许没有 new 操作符的实例化 return new Sandbox(o); } else { self._init(); self._config(o); // 预加载某些指定模块 /* self._setup(); */ // 返回实例本身,支持链式模式 return self; } }; } // Sandbox的(类)静态属性 Sandbox.Env = { /* [...]

... 7 条评论 »

删除数组中重复项(uniq)

首先让我们看下 YUI 是如何处理的: var toObject = function(a) { var o = {}; for (var i = 0; i < a.length; i = i+1) { o[a[i]] = true; } return o; }; var keys = function(o) { var a=[], i; for (i in o) { if (lang.hasOwnProperty(o, i)) { // YUI的方法 a.push(i); } } return a; [...]

... 36 条评论 »

YUI Compressor 组件压缩 JavaScript 的一些原理

YUI Compressor 压缩 JavaScript 的内容包括: 移除注释 移除额外的空格 细微优化 标识符替换(Identifier Replacement) YUI Compressor 包括哪些细微优化呢? object["property"] ,如果属性名是合法的 JavaScript 标识符(注:合法的 JavaScript 标识符——由一个字母开头,其后选择性地加上一个或者多个字母、数字或下划线)且不是保留字,将优化为: object.property {“property”:123} ,如果属性名是合法的 JavaScript 标识符且不是保留字,将优化为 {property:123} (注:在对象字面量中,如果属性名是一个合法的 JavaScript 标识符且不是保留字,并不强制要求用引号引住属性名)。 ‘abcd\’efgh’,将优化为 “abcd’efgh”。 “abcd” + “efgh”,如果是字符串相连接,将优化成 “abcdefgh”(注:所有在使用 YUI Compressor 的前提下,对于脚本中的字符串连接,使用连接符 “... 7 条评论 »

YUI Grids CSS 解读

YUI 中的 Grids CSS 主要有三个部分值得大家关注和学习: 1、布局的思想:使用 “负 margin(Negative Margins)” 技术 详细可参阅:《Creating Liquid Layouts with Negative Margins》 2、使用 em :当用户改变字体大小时,宽度同时改变。 技巧:用 13 像素来平分宽度(保留小数到千分位),而 IE 浏览器用 13.333 。 /* 750 centered, and backward compatibility */ #doc { width:57.69em; *width:56.251em; min-width:750px; } 57.69 = 750 / 13 56.251 = 750 / 13.333 注:《Setting Page Width with YUI Grids》 [...]

... 42 条评论 »

YUI: Effects Widgets

YAHOO.widget.Effects 基于 YUI 实现的 Effects 库,记录一下。 http://blog.davglass.com/files/yui/effects/ 用这个库可以很好的改善网站某些视觉效果,当然使用适当为上,画龙点睛即可。

... 4 条评论 »