互联网
类型
8.0
豆瓣评分
可以朗读
语音朗读
310千字
字数
2017-09-01
发行日期
展开全部
主编推荐语
深入浅出web前端开发,web开发教经典教程书籍!
内容简介
在知名培训机构Big Nerd Ranch培训教材的基础上编写而成,囊括了JavaScript、HTML5、CSS3等现代前端开发人员急需的技术关键点,包括响应式UI,访问远程Web服务,用Ember.js构建应用,等等。此外,还会介绍如何使用前沿开发工具来调试和测试代码,并且充分利用Node.js和各种开源的npm模块的强大功能来进行开发。
全书分四部分,每部分独立完成一个项目,由浅入深、循序渐进,在构建一系列应用的过程中,介绍Web开发的核心概念和API。无论是否拥有Web开发经验,抑或拥有其他平台的开发背景,只要对当今流行的工具和开发实践充满兴趣,这本书都能让你受益匪浅。
目录
- 版权信息
- 献词
- 前言
- 学习前端Web开发
- 目标读者
- 本书的组织结构
- 如何使用本书
- 挑战
- 延展阅读
- 电子书
- 致谢
- 第一部分 浏览器编程基础
- 第1章 配置开发环境
- 1.1 安装Google Chrome
- 1.2 安装并配置Atom
- Atom插件
- 1.3 文档和参考资料
- 1.4 命令行速成
- 1.4.1 查看当前工作目录
- 1.4.2 新建目录
- 1.4.3 切换目录
- 1.4.4 列出目录中的文件
- 1.4.5 获取管理员权限
- 1.4.6 退出程序
- 1.5 安装Node.js和browser-sync
- 1.6 延展阅读:Atom的替代工具
- 第2章 开始第一个项目
- 2.1 搭建Ottergram
- 2.1.1 开始写HTML
- 2.1.2 链接到样式表
- 2.1.3 添加内容
- 2.1.4 添加图片
- 2.2 浏览网页
- 2.3 Chrome开发者工具
- 2.4 延展阅读:CSS版本
- 2.5 延展阅读:favicon.ico
- 2.6 中级挑战:添加favicon.ico
- 第3章 样式
- 3.1 创建基本样式
- 3.2 为HTML文件添加样式
- 3.3 样式的构成
- 3.4 第一条样式规则
- 盒模型
- 3.5 样式继承
- 3.6 图片自适应
- 3.7 颜色
- 3.8 调整空白
- 关系选择器
- 3.9 添加字体
- 3.10 初级挑战:更改颜色
- 3.11 延展阅读:优先级!当选择器发生冲突了……
- 第4章 flexbox响应式布局
- 4.1 界面拓展
- 4.1.1 添加大图
- 4.1.2 缩略图水平布局
- 4.2 flexbox
- 4.2.1 创建flex容器
- 4.2.2 改变flex-direction
- 4.2.3 flex项目中的元素分组
- 4.2.4 flex缩写属性
- 4.2.5 flex项目的排序与对齐方式
- 4.2.6 居中显示大图
- 4.3 绝对定位与相对定位
- 第5章 使用媒体查询完成自适应布局
- 5.1 重置视口
- 5.2 添加媒体查询
- 5.3 初级挑战:屏幕方向
- 5.4 延展阅读:flexbox布局通用解决方案与bug
- 5.5 高级挑战:圣杯布局
- 第6章 JavaScript事件处理
- 6.1 准备锚标签
- 6.2 第一个脚本
- 6.3 Ottergram中的JavaScript描述
- 6.4 声明字符串变量
- 6.5 操作控制台
- 6.6 访问DOM元素
- 6.7 编写setDetails函数
- 通过形参声明接受实参
- 6.8 从函数返回值
- 6.9 添加事件监听器
- 6.10 访问所有缩略图
- 6.11 迭代缩略图数组
- 6.12 中级挑战:劫持链接
- 6.13 高级挑战:随机的水獭
- 6.14 延展阅读:严格模式
- 6.15 延展阅读:闭包
- 6.16 延展阅读:NodeList对象和HTMLCollection对象
- 6.17 延展阅读:JavaScript类型
- 第7章 使用CSS营造视觉效果
- 7.1 隐藏及显示大图
- 7.1.1 创建隐藏大图的样式
- 7.1.2 用JavaScript隐藏大图
- 7.1.3 监听键盘事件
- 7.1.4 重新显示大图
- 7.2 使用CSS过渡改变状态
- 7.2.1 变形
- 7.2.2 添加CSS过渡效果
- 7.2.3 使用定时函数
- 7.2.4 基于类的过渡效果
- 7.2.5 通过JavaScript触发过渡效果
- 7.3 自定义定时函数
- 7.4 延展阅读:强制类型转换的规则
- 第二部分 模块、对象及表单
- 第8章 模块、对象和方法
- 8.1 模块
- 8.1.1 模块模式
- 8.1.2 通过IIFE修改对象
- 8.2 搭建我们的CoffeeRun吧
- 8.3 创建数据存储模块
- 8.4 在命名空间上添加一个模块
- 8.5 构造函数
- 8.5.1 构造函数的原型
- 8.5.2 为构造函数添加方法
- 8.6 创建Truck模块
- 8.6.1 添加订单
- 8.6.2 删除订单
- 8.7 调试
- 8.7.1 使用开发者工具定位bug
- 8.7.2 使用bind设置this
- 8.8 在页面加载时初始化CoffeeRun
- 创建Truck实例
- 8.9 初级挑战:使用非星迷熟悉的餐车ID
- 8.10 延展阅读:模块私有数据
- 8.11 中级挑战:私有化数据
- 8.12 延展阅读:在forEach的回调函数中设置this
- 第9章 Bootstrap简介
- 9.1 添加Bootstrap
- Bootstrap的原理
- 9.2 创建订单表单
- 9.2.1 添加文本输入字段
- 9.2.2 提供单选按钮
- 9.2.3 添加下拉菜单
- 9.2.4 添加范围滑块
- 9.2.5 添加提交按钮和重置按钮
- 第10章 使用JavaScript处理表单
- 10.1 创建FormHandler模块
- 10.1.1 jQuery简介
- 10.1.2 导入jQuery
- 10.1.3 使用selector参数配置FormHandler实例
- 10.2 添加提交处理程序
- 10.2.1 提取数据
- 10.2.2 接受并调用回调函数
- 10.3 使用FormHandler
- 将createOrder注册为提交处理程序
- 10.4 UI优化
- 10.5 初级挑战:添加超级尺寸
- 10.6 中级挑战:当滑块滑动时显示其数值
- 10.7 高级挑战:添加选择
- 第11章 从数据到DOM
- 11.1 建立清单
- 11.2 创建CheckList模块
- 11.3 创建行构造函数
- 使用jQuery创建DOM元素
- 11.4 在提交时创建清单行
- 使用call绑定this
- 11.5 通过单击行完成订单
- 11.5.1 创建CheckList.prototype.removeRow方法
- 11.5.2 删除被覆盖的条目
- 11.5.3 编写addClickHandler方法
- 11.5.4 调用addClickHandler
- 11.6 初级挑战:在描述中加入浓度信息
- 11.7 中级挑战:不同口味,不同颜色
- 11.8 高级挑战:允许编辑订单
- 第12章 表单校验
- 12.1 required属性
- 12.2 使用正则表达式校验表单
- 12.3 约束校验API
- 12.3.1 监听input事件
- 12.3.2 将input事件和有效性校验绑定
- 12.3.3 触发有效性检查
- 12.4 美化有效元素和无效元素
- 12.5 中级挑战:为脱咖啡因咖啡进行自定义校验
- 12.6 延展阅读:Webshim库
- 第13章 Ajax
- 13.1 XMLHttpRequest对象
- 13.2 RESTful Web服务
- 13.3 RemoteDataStore模块
- 13.4 向服务器发送数据
- 13.4.1 使用jQuery的$.post方法
- 13.4.2 添加回调函数
- 13.4.3 检查Ajax的请求和响应
- 13.5 从服务器检索数据
- 13.5.1 查看响应数据
- 13.5.2 添加回调函数
- 13.6 从服务器删除数据
- 使用jQuery的$.ajax方法
- 13.7 用RemoteDataStore替换DataStore
- 13.8 中级挑战:校验远端服务器
- 13.9 延展阅读:Postman
- 第14章 Deferred和Promise
- 14.1 Promise和Deferred
- 14.2 返回Deferred
- 14.3 通过then注册回调函数
- 14.4 使用then处理失败的情况
- 14.5 在仅支持回调函数的API上使用Deferred
- 14.6 为DataStore配置Promise
- 14.6.1 创建并返回Promise
- 14.6.2 resolve一个Promise
- 14.6.3 将其他DataStore方法Promise化
- 14.7 中级挑战:回退到Datastore
- 第三部分 实时数据传输
- 第15章 Node.js入门
- 15.1 Node和npm
- 15.1.1 npm init
- 15.1.2 npm脚本
- 15.2 Hello, World
- 15.3 添加一个npm脚本
- 15.4 用文件提供服务
- 15.4.1 用fs模块读取文件
- 15.4.2 处理请求URL
- 15.4.3 使用path模块
- 15.4.4 创建自定义模块
- 15.4.5 使用自定义模块
- 15.5 错误处理
- 15.6 延展阅读:npm模块注册
- 15.7 初级挑战:创建自定义错误页面
- 15.8 延展阅读:MIME类型
- 15.9 中级挑战:动态提供MIME类型
- 15.10 高级挑战:将错误处理放到单独的模块中
- 第16章 使用WebSocket进行实时通信
- 16.1 配置WebSocket
- 16.2 测试WebSocket服务器
- 16.3 创建聊天服务器的功能
- 16.4 第一次聊天!
- 16.5 延展阅读:WebSocket库socket.io
- 16.6 延展阅读:WebSocket服务
- 16.7 初级挑战:我重复了我的消息吗?
- 16.8 中级挑战:Speakeasy
- 16.9 高级挑战:聊天机器人
- 第17章 借助Babel使用ES6
- 17.1 编译JavaScript的工具
- 17.2 Chattrbox客户端应用程序
- 17.3 迈出Babel的第一步
- class语法
- 17.4 使用Browserify打包模块
- 执行构建操作
- 17.5 新增ChatMessage类
- 17.6 创建ws-client模块
- 17.6.1 处理连接
- 17.6.2 处理事件并发送消息
- 17.6.3 发出和回应一条消息
- 17.7 延展阅读:将其他语言编译成JavaScript
- 17.8 初级挑战:默认导入名称
- 17.9 中级挑战:提醒连接关闭
- 17.10 延展阅读:变量提升
- 17.11 延展阅读:箭头函数
- 第18章 继续ES6探索之旅
- 18.1 将jQuery安装成一个Node模块
- 18.2 创建ChatForm类
- 将ChatForm连接到socket
- 18.3 创建ChatList类
- 18.4 使用Gravatar
- 18.5 请求用户名
- 18.6 使用会话存储
- 18.7 格式化和更新消息时间戳
- 18.8 初级挑战:给消息添加特效
- 18.9 中级挑战:缓存消息
- 18.10 高级挑战:独立的聊天室
- 第四部分 应用架构
- 第19章 初识MVC和Ember
- 19.1 Tracker
- 19.2 Ember:一款MVC框架
- 19.2.1 安装Ember
- 19.2.2 创建Ember应用
- 19.2.3 启动服务器
- 19.3 安装外部库和插件
- 19.4 修改配置
- 19.5 延展阅读:npm和Bower的安装命令
- 19.6 初级挑战:限制引入
- 19.7 中级挑战:添加Font Awesome库
- 19.8 高级挑战:自定义NavBar
- 第20章 路由选择、路由表、模型
- 20.1 Ember生成器
- 20.2 嵌套路由
- 20.3 Ember Inspector
- 20.4 指派模型
- 20.5 beforeModel
- 20.6 延展阅读:setupController和afterModel
- 第21章 模型和数据绑定
- 21.1 定义模型
- 21.2 创建记录
- 21.3 get和set
- 21.4 计算属性
- 21.5 延展阅读:检索数据
- 21.6 延展阅读:保存或删除数据
- 21.7 初级挑战:修改计算属性
- 21.8 中级挑战:对新的目击记录进行标记
- 21.9 高级挑战:添加称呼
- 第22章 数据——适配器、序列化器和变换器
- 22.1 适配器
- 22.2 内容安全策略
- 22.3 序列化器
- 22.4 变换器
- 22.5 延展阅读:Ember CLI Mirage
- 22.6 中级挑战:内容安全
- 22.7 高级挑战:Mirage
- 第23章 视图与模板
- 23.1 Handlebars
- 23.2 模型
- 23.3 辅助方法
- 23.3.1 条件语句
- 23.3.2 {{#each}}循环
- 23.3.3 元素属性赋值
- 23.3.4 链接
- 23.4 自定义辅助方法
- 23.5 初级挑战:为链接添加鼠标悬浮的内容
- 23.6 中级挑战:修改日期格式
- 23.7 高级挑战:创建一个自定义缩略图辅助方法
- 第24章 控制器
- 24.1 新建目击记录
- 24.2 编辑目击记录
- 24.3 删除目击记录
- 24.4 路由动作
- 24.5 初级挑战:目击记录详情页
- 24.6 中级挑战:目击日期
- 24.7 高级挑战:添加和删除目击者
- 第25章 组件
- 25.1 迭代器组件
- 25.2 “拧干”组件的“水分”
- 25.3 数据向下,动作向上
- 25.4 类名绑定
- 25.5 数据向下
- 25.6 动作向上
- 25.7 初级挑战:自定义提示信息
- 25.8 中级挑战:将导航条转化为组件
- 25.9 高级挑战:提示框数组
- 第26章 后记
- 26.1 最后的挑战
- 26.2 插播一个广告
- 26.3 感谢你
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。