网络编程
位置:首页>> 网络编程>> JavaScript>> YUI3新特性学习(2)

YUI3新特性学习(2)

 来源:陈漫凯的分享 发布时间:2012-04-26 16:25:20 

标签:YUI3,Javascript库


颗粒化模块

YUI2.x每个模块庞大的体积让不少人望而兴叹。比如有时候要使用日历里面的基础功能,你不得不把整个日历组件导人,整整75K的代码,你实际用到的仅仅是基础功能,这也是很多公司没有使用YUI的原因之一。YUI3.x做了大调整,对每个模块都进行了更细颗粒度的划分。比如,DOM模块,划分为了base, screen, style, selector-css2, selector-css3, selector-native等几个小模块,这样,我们可以根据需要选择所需的模块,对于我们控制页面的载入的数据量有很大帮助。

但更细的划分模块,带来的弊端就是,代码文件增多,维护成本变大。


选择器(Selector)

YUI2.9就已经引入了选择器引擎,但由于它在整个YUI2.x中出现得比较晚,所以,在很多基于旧版本的YUI项目中,还是用传统的元素匹配技术。

而在YUI3.x中,选择器已经成为了一种标准支持。






 

 

 

 


Y.one('#demo');

Y.all('.demo');

Y.all('.demo').filter([filter]);

Y.all('#demo li');

如果需要用到css选择器,需要把selector-css2.js和selector-css3.js引入。但从性能的角度上讲,我还是觉得没有必要去用那么复杂的选择器。


链式调用

跟jQuery一样,YUI3.x也开始支持链式调用,对于一些没有逻辑返回值的方法,YUI3.x都支持链式调用。




 


Y.one('#demo').set('innerHTML', 'Hello World!').addClass('hight-light');

链式调用并非YUI3.x的主打亮点,但的确带来了书写的便利性,但同时,对于向来严谨的YUI,链式一定程度上会带坏现有代码风格。使用YUI开发的人,至少要在链式调用使用程度上达到一定的共识。


Nodes

由于各个浏览器对DOM标准的支持不同,YUI Node对底层的DOM节点进行封装,并强化其功能,为创建、操作和获取DOM节点对象(集合)提供了丰富的方法。封装后的YUI Node和浏览器HTMLElement对象对比:

封装后,获取到的不在是一个浏览器DOM对象,所以对YUI Node对象的熟悉的访问和修改,必须通过getter和setter来操作。




 

 

 


var el = Y.one('#demo');

alert(el.id); // undefined

alert(el.get('id')); // 'demo'


小结

正如我们所看到的,YUI3.x相对于早前版本,完全是一个新的产物。通过新的语法,我们使用到的是,更轻量,更易用,更快捷的库。YUI2.x是一种工具集,而YUI3.x更像是一种架构,框架或者说解决方案。

0
投稿

猜你喜欢

  • 数据共享是数据库最基本的特征之一。但是数据共享虽然为员工带来了便利,但也产生了一些负面作用。例如因用户并发存取而导致的对数据一致性的破坏、由
  • ASP开发中有用的函数(function)集合,挺有用的,请大家保留!'******************************
  • 有时候我们会在页面上显示用户的所在地区,这个原理是:先得到用户的IP,然后去查询将IP转换成一个数值,最后去查这个数值所在的范围,来得到用户
  •   早上一开Google Reader,发现已经全部被Silverlight 3的消息占领了,基本上都来自于Silverlight
  • 在Oracle 8i版本之前,使用internal用户来执行数据库的启动和关闭以及create database等操作;从8i版本以后,Or
  • 问:如何自己制作验证码的head.fix和body.fix文件答:1 图象绘制完成后,将文件存为24位位图格式的BMP图象文件。 2 去除前
  • 动态联接库(DLL)是加快应用程序关键部分的执行速度的重要方法,但有一点恐怕大部分人都不知道,那就是在ASP文件也能通过调用DLL来加快服务
  • 昨天Steve的 讲座涉及了一个我从没考虑的领域,在没法优化后台服务器的时候,如何合理的放置网页的元件让她们在浏览器里显示得更加快。这里,我
  • 管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全。但实际上并非如此。在这里,我们列出了一些对于SQL Serve
  • 缓动,学名为Tween,缓冲移动的简称。要想页面内容切换起来舒服,就使用淡入淡出特效,要想让页面元素动起来自然,就要使用缓动效果。这两个混合
  • <% On Error Resume Next Const uploadPath = "/uploads/" &#
  • 近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此
  • 大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。为什么索引能提高数据访问性能?他会不会有“副作用”?是不是
  • 为了方便使用分类,我定义了一个分类表category,里面字段是id(自动编号)  cat_name(分类名) pare
  • [前言]:搭往公司的班车,遇到其他部门的同事,他问了很多关于我的工作的问题,由此引发这篇文章。这些问题,我也经常被其他人问到,其中既有我们亲
  • 如何使DIV居中,div垂直居中,div水平居中.这个问题在用CSS来设计网页的时候经常会遇到,如果用传统的表格来布局是很简单的,CSS里就
  • 星爷的一部“国产007”应该是无人不晓,其中一个片段是将“007”向MM展示他的秘密武器。皮鞋可以吹头发,大哥大可以刮胡子……把真实功能隐蔽
  • 前几天开始原来的google pr查询接口已经失效,导致很多站长工具pr查询功能不能使用原始pr查询接口:$string =&nb
  • 声明定位元素:position属性值设置除默认值static以外的元素,包括relative,absolute,fixed。平台:win/I
  • 我们日常用CSS布局的时候,关于图片背景,大部分的人都是一个背景一张图片的,怎么说呢?这是很标准的方法,但是这种普通制作方式下要保存大量图片
手机版 网络编程 asp之家 www.aspxhome.com