新書推薦:
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:NT$
265.0
《
明式家具三十年经眼录
》
售價:NT$
2387.0
《
敦煌写本文献学(增订本)
》
售價:NT$
1010.0
《
耕读史
》
售價:NT$
500.0
《
地理计算与R语言
》
售價:NT$
551.0
《
沈括的知识世界:一种闻见主义的实践(中华学术译丛)
》
售價:NT$
398.0
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:NT$
332.0
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
|
編輯推薦: |
YUI是全球最流行的JavaScript框架,用于帮助Web开发人员写出最好的JavaScript。
国内唯一一本YUI图书,著、译者均为YUI技术发明公司Yahoo!一线从业人员。
本书基于YUI的最新版本——开源JavaScript库版本。
|
內容簡介: |
YUI 是Yahoo!的一个开源项目,包含了前端开发中的CSS、测试、文档、压缩等一系列工具和文档,其中YUI
的JavaScript 库是一个优秀的JavaScript 框架。从YUI 2 到YUI 3,YUI
一直在不断地迭代,一直走在前端开发的最前列,就像它宣称的那样:“YUI 是一个构建富交互Web 应用的免费开源JavaScript
和CSS 库。”
本书主要以“问题”、“解决方法”和“讨论”的形式逐一介绍YUI 的各个模块及它的整体架构,包含了时下流行的模块加载、MVC
编程和Node.js 等内容,同时对于移动开发、国际化及前端测试也有所涉猎。相信以前没有用过YUI
的人也能慢慢地学会如何使用这个优秀的框架,在你遇到问题时可以去GitHub 上读它的源码或到YUI Library
上看它的官方文档和实例;那些以前用过YUI 的人也能了解到一些之前不曾了解的东西,同时也可以对其他的项目有所帮助。无论是YUI
的API 还是源码,都让你像使用原生JavaScript 那样使用YUI,因此对于那些想提高JavaScript
编程水平的人一定会有所帮助。
|
關於作者: |
Evan
Goer,是Yahoo!的高级技术作家,他在Sunnyvale,CA的一个技术团队工作,负责开发Yahoo!内部部署基础设施。他同样和YUI核心技术团队紧密地工作在一起。埃文是Sunnyvale本地人,拥有HarveyMudd学院的物理科学学士学位。
鲁超伍,英文名AdamLu,百度高级研发工程师,目前主要负责移动互联网的开发工作,同时也是天地会HTML5CSS3版版主,有多年互联网前端开发经验,曾供职于人人、淘宝、Yahoo!等互联网公司。积极参与前端活动,向业界同行分享前端开发技术,使用YUI多年,并一直跟随行业最新技术。
|
目錄:
|
前言
第1章 模块加载
1.1 加载包和模块
1.2 加载SimpleYUI
1.3 识别和加载独立模块
1.4 加载不同的默认皮肤
1.5 加载Gallery 模块
1.6 加载YUI 2 组件
1.7 加载本地寄宿的代码
1.8 创建你自己的模块
1.9 创建有依赖的模块
1.10 创建真正可重用的模块
1.11 定义自定义模块组
1.12 重用YUI 配置
1.13 定义你自己的包
1.14 加载jQuery 作为一个YUI 模块
1.15 根据浏览器能力加载模块
1.16 实时修补YUI
1.17 按需加载模块
1.18 在用户操作的时候启用预加载
1.19 绑定YUI 实例到iframe 上
1.20 实现静态加载
第2章 DOM 操作
2.1 获取元素引用
2.2 操作CSS 类
2.3 获取和设置DOM 属性
2.4 改变元素里面的内容
2.5 处理元素集合
2.6 创建新元素
2.7 添加自定义方法到节点上
2.8 添加自定义属性到节点上
第3章 用户界面效果和交互
3.1 隐藏元素
3.2 淡出一个元素
3.3 移动元素
3.4 创建系列过渡
3.5 定义你自己的罐装过渡
3.6 创建一个无限滚动效果
3.7 拖曳元素
3.8 创建可调整大小的节点
3.9 实现可拖曳排序的表格
第4章 事件
4.1 响应鼠标滑过、单击和其他用户操作
4.2 响应元素和页面生命周期事件
4.3 控制事件传播和冒泡
4.4 阻止默认行为
4.5 委托事件
4.6 发出和捕获自定义事件
4.7 用自定义事件驱动应用程序
4.8 使用对象方法作为事件处理器
4.9 分离事件订阅
4.10 控制事件处理器执行顺序
4.11 创建合成DOM 事件
4.12 用另一个方法响应一个方法调用
第5章 Ajax
5.1 获取和显示XHR 数据
5.2 数据传输期间处理错误
5.3 直接加载内容到节点
5.4 用XHR 提交表单数据
5.5 用XHR 上传文件
5.6 用脚本节点获取JSON 数据(JSONP)
5.7 用YQL 获取和显示数据
5.8 用YQL 分解HTML
5.9 用DataSource 查询数据
5.10 用DataSchema 标准化DataSource 响应
第6章 CSS
6.1 标准化浏览器样式不一致性
6.2 重建统一的基础样式
6.3 应用一致的字体
6.4 用网格布局铺设内容
6.5 为响应设计使用网格
6.6 创建一致的按钮
第7章 基础结构
7.1 用属性管理状态
7.2 用Y.extend创建基本元件
7.3 用Y.Base.create创建Base 元件
7.4 创建一个基本的组件
7.5 用渐进增强创建组件
7.6 用Widget 渲染远程数据
7.7 创建一个简单的插件
7.8 创建一个插件更改宿主行为
7.9 给组件绑定CSS 作为一个CSS 模块
7.10 给组件绑定CSS 作为一个皮肤
7.11 用模型表示数据
7.12 用同步层持久化模型数据
7.13 用同步模型列表管理模型
7.14 用视图渲染HTML
7.15 用视图渲染模型
7.16 用视图渲染模型列表
7.17 在URL 中保存状态变化
7.18 定义和执行路由
第8章 使用组件
8.1 实例化、渲染和配置组件
8.2 创建一个遮盖
8.3 对齐和居中遮盖
8.4 让遮盖可拖曳
8.5 创建一个简单的美化的信息面板
8.6 创建一个模态对话框或表单
8.7 从一个遮盖创建一个工具提示
8.8 从遮盖创建一个灯箱效果
8.9 创建一个滑块
8.10 创建一个标签视图
8.11 创建一个基本的数据表格
8.12 格式化数据表格的外观
8.13 在数据表格里显示远程JSON 数据源
8.14 在图表里绘制数据
8.15 用日历选择日期
8.16 定义日历规则
8.17 创建一个基本的自动完成
8.18 高亮和过滤自动完成结果
8.19 使用远程数据自动完成
8.20 自定义自动完成结果列表
第9章 工具
9.1 决定变量的类型
9.2 遍历数组和对象
9.3 过滤数组
9.4 合并对象
9.5 从其他对象组合和继承
9.6 自动缓存函数调用结果
9.7 用简单的字符串替换做模板
9.8 格式化数字
9.9 格式化日期
9.10 解析任意的XML
9.11 转换颜色值
9.12 管理历史和后退按钮
9.13 转义用户输入
9.14 给复选框组分配特殊的行为
9.15 实现简单的键盘操作和导航
9.16 可靠地检测输入框变化
9.17 管理和验证表单
第10章 服务器端的YUI
10.1 在服务器上安装和运行YUI
10.2 在服务器上同步加载模块
10.3 在命令行里使用YUI
10.4 在服务器上调用YQL
10.5 使用YUI REPL
10.6 用YUI、YQL 和Handlebars 构造和服务页面
第11章 通用访问
11.1 预防无样式内容闪烁
11.2 给表单错误消息增加ARIA
11.3 用ARIA 构建组件
11.4 用ARIA 插件改造组件
11.5 定义翻译过的字符串
11.6 国际化组件
第12章 专业工具
12.1 启用调试日志
12.2 在页面上渲染调试日志输出
12.3 编写单元测试
12.4 组织单元测试为套件
12.5 通过模拟事件测试事件处理器
12.6 模仿对象
12.7 用wait异步测试
12.8 收集和发布测试结果
12.9 在多个浏览器中预提交测试
12.10 在移动设备上测试
12.11 测试服务器端的JavaScript
12.12 压缩你的代码
12.13 文档化你的代码
索引
|
內容試閱:
|
讨论
创建新元素是任何网站应用程序的关键操作。例如,如果你注入一个可见的组件到页面上,这个组件负责引导自身到实体,通过创建、修改和根据需求添加元素到文档。
许多开发者用一个叫做“渐进增强”的设计策略来确保当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中,完全替换元素里面的内容。
|
|