YUI是全球流行的JavaScript框架,用于帮助Web开发人员写出优秀的JavaScript。
著、译者均为YUI技术发明公司Yahoo!一线从业人员。
《YUI 3 Cookbook中文版》基于YUI的新版本——开源JavaScript库版本。
推荐购买:
YUI是Yahoo!的一个开源项目,包含了前端开发中的CSS、测试、文档、压缩等一系列工具和文档,其中YUI的JavaScript库是一个优秀的JavaScript框架。从YUI2到YUI3,YUI一直在不断地迭代,一直走在前端开发的最前列,就像它宣称的那样:“YUI是一个构建富交互Web应用的免费开源JavaScript和CSS库。”
《YUI 3 Cookbook中文版》主要以“问题”、“解决方法”和“讨论”的形式逐一介绍YUI的各个模块及它的整体架构,包含了时下流行的模块加载、MVC编程和Node.js等内容,同时对于移动开发、国际化及前端测试也有所涉猎。相信以前没有用过YUI的人也能慢慢地学会如何使用这个优秀的框架,在你遇到问题时可以去GitHub上读它的源码或到YUILibrary上看它的官方文档和实例;那些以前用过YUI的人也能了解到一些之前不曾了解的东西,同时也可以对其他的项目有所帮助。无论是YUI的API还是源码,都让你像使用原生JavaScript那样使用YUI,因此对于那些想提高JavaScript编程水平的人一定会有所帮助。
讨论
创建新元素是任何网站应用程序的关键操作。例如,如果你注入一个可见的组件到页面上,这个组件负责引导自身到实体,通过创建、修改和根据需求添加元素到文档。
许多开发者用一个叫做“渐进增强”的设计策略来确保当JavaScript被禁用或失败的情况下他们的页面至少提供基本的功能。这个理念首先提供了一个静态页面的骨架,然后用JavaScript增强页面的行为。一些类型的项目如游戏、书签或内部的商业程序,可能不需要渐进增强,但是一般如果没有遵循这个策略可能会导致严重的错误。YUI包含一些模式直接或间接地支持渐进增强,例如特性检测和Widget的HTML_PARSER属性,这会在7.5节描述。
甚至到现在,许多老的教程和脚本仍然依赖document.write()方法,它把字符串编译成元素并当文档正在加载时把这些元素写到DOM里。在文档加载后调用document.write()会清除并替换整个页面文档,这可能导致奇怪的bug。在文档加载前调用document.write()使浏览器优化如何获取资源和渲染页面变得困难。
YUI的Node接口提供了比document.write()更好的创建新元素的方法,这些方法有:
· 静态的Y.Node,create()方法创建了一个与文档分离的新节点,这是在YUI中创建Y.Node对象的主方法。
· cloneNode()创建了一个Y.Node节点的浅复制(仅仅复制起始标签)或深复制(复制所有的属性和里面的内容)。当你需要创建一些相似的节点时克隆是一个有用的优化:用Y.Node.create()来创建一个模板节点,然后克隆这个模板,像Y.Node.create() -样,克隆的节点也是游离文档之外的。
· 在2.4节讨论的DOM的setHTML()和innerHTML属性,这些方法用浏览器的HTML解析器来把一个字符串编译成元素并一次把那些元素插入DOM中,完全替换元素里面的内容
……