新書推薦:
《
重写晚明史(全5册 精装)
》
售價:NT$
3560.0
《
汉末晋初之际政治研究
》
售價:NT$
602.0
《
强者破局:资治通鉴成事之道
》
售價:NT$
367.0
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:NT$
551.0
《
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
》
售價:NT$
275.0
《
突破不可能:用特工思维提升领导力
》
售價:NT$
352.0
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:NT$
1010.0
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:NT$
602.0
|
編輯推薦: |
专业——源自大名鼎鼎的Big Nerd Ranch训练营实战课程,该训练营已经为微软、Google、Facebook等行业巨头培养了众多专业人才。 领-先——涵盖前端开发先进的技术,实现精彩Web应用。 实战——4大Web开发实战项目,以项目驱动讲解,以实践引-领理论。 梯度——从基础的交互式网页到实时聊天应用,由浅入深,横跨大前端。
|
內容簡介: |
本书在知名培训机构Big Nerd Ranch培训教材的基础上编写而成,囊括了JavaScript、HTML5、CSS3等现代前端开发人员急需的技术关键点,包括响应式UI,访问远程Web服务,用Ember.js构建应用,等等。此外,还会介绍如何使用前沿开发工具来调试和测试代码,并且充分利用Node.js和各种开源的npm模块的强大功能来进行开发。 全书分四部分,每部分独立完成一个项目,由浅入深、循序渐进,在构建一系列应用的过程中,介绍Web开发的核心概念和API。 无论是否拥有Web开发经验,抑或拥有其他平台的开发背景,只要对当今流行的工具和开发实践充满兴趣,这本书都能让你受益匪浅。
|
關於作者: |
Chris Aquino,Web开发专家,Big Nerd Ranch讲师。作为开发者,他希望能给用户提供有意义的数据体验;作为主管和讲师,他致力于帮助他的团队和学生构建出更好的Web。平时喜欢发条玩具、浓缩咖啡和格式烧烤 Todd Gandee,前端工程师,Big Nerd Ranch讲师。拥有十余年的Web顾问经验,专业技能娴熟。业余时间喜欢跑步、骑行以及攀岩。
|
目錄:
|
第一部分 浏览器编程基础
第1章 配置开发环境2
1.1 安装Google Chrome2
1.2 安装并配置Atom3
1.3 文档和参考资料6
1.4 命令行速成8
1.4.1 查看当前工作目录9
1.4.2 新建目录10
1.4.3 切换目录10
1.4.4 列出目录中的文件11
1.4.5 获取管理员权限12
1.4.6 退出程序13
1.5 安装Node.js和browser-sync14
1.6 延展阅读:Atom 的替代工具15
第2章 开始第一个项目17
2.1 搭建Ottergram18
2.1.1 开始写HTML19
2.1.2 链接到样式表22
2.1.3 添加内容22
2.1.4 添加图片23
2.2 浏览网页25
2.3 Chrome开发者工具27
2.4 延展阅读:CSS 版本29
2.5 延展阅读:favicon.ico29
2.6 中级挑战:添加favicon.ico30
第3章 样式31
3.1 创建基本样式32
3.2 为HTML文件添加样式33
3.3 样式的构成34
3.4 第一条样式规则35
3.5 样式继承38
3.6 图片自适应45
3.7 颜色47
3.8 调整空白49
3.9 添加字体53
3.10 初级挑战:更改颜色56
3.11 延展阅读:优先级!当选择器发生冲突了……56
第4章 flexbox响应式布局58
4.1 界面拓展59
4.1.1 添加大图59
4.1.2 缩略图水平布局61
4.2 flexbox63
4.2.1 创建flex容器64
4.2.2 改变flex-direction65
4.2.3 flex项目中的元素分组66
4.2.4 flex缩写属性68
4.2.5 flex项目的排序与对齐方式69
4.2.6 居中显示大图73
4.3 绝对定位与相对定位75
第5章 使用媒体查询完成自适应布局82
5.1 重置视口83
5.2 添加媒体查询85
5.3 初级挑战:屏幕方向89
5.4 延展阅读:flexbox布局通用解决方案与bug89
5.5 高级挑战:圣杯布局89
第6章 JavaScript事件处理90
6.1 准备锚标签91
6.2 第一个脚本94
6.3 Ottergram中的JavaScript 描述95
6.4 声明字符串变量96
6.5 操作控制台97
6.6 访问DOM元素99
6.7 编写setDetails函数104
6.8 从函数返回值108
6.9 添加事件监听器110
6.10 访问所有缩略图115
6.11 迭代缩略图数组117
6.12 中级挑战:劫持链接118
6.13 高级挑战:随机的水獭119
6.14 延展阅读:严格模式119
6.15 延展阅读:闭包119
6.16 延展阅读:NodeList对象和HTMLCollection 对象120
6.17 延展阅读:JavaScript类型122
第7章 使用CSS营造视觉效果123
7.1 隐藏及显示大图123
7.1.1 创建隐藏大图的样式125
7.1.2 用JavaScript 隐藏大图127
7.1.3 监听键盘事件128
7.1.4 重新显示大图131
7.2 使用CSS过渡改变状态132
7.2.1 变形133
7.2.2 添加CSS过渡效果135
7.2.3 使用定时函数138
7.2.4 基于类的过渡效果139
7.2.5 通过JavaScript触发过渡效果140
7.3 自定义定时函数141
7.4 延展阅读:强制类型转换的规则143
第二部分 模块、对象及表单
第8章 模块、对象和方法146
8.1 模块146
8.1.1 模块模式147
8.1.2 通过IIFE修改对象149
8.2 搭建我们的CoffeeRun吧151
8.3 创建数据存储模块152
8.4 在命名空间上添加一个模块153
8.5 构造函数154
8.5.1 构造函数的原型155
8.5.2 为构造函数添加方法157
8.6 创建Truck模块159
8.6.1 添加订单160
8.6.2 删除订单161
8.7 调试163
8.7.1 使用开发者工具定位bug165
8.7.2 使用bind 设置this169
8.8 在页面加载时初始化CoffeeRun170
8.9 初级挑战:使用非星迷熟悉的餐车ID173
8.10 延展阅读:模块私有数据173
8.11 中级挑战:私有化数据174
8.12 延展阅读:在forEach的回调函数中设置this174
第9章 Bootstrap简介175
9.1 添加Bootstrap175
9.2 创建订单表单177
9.2.1 添加文本输入字段178
9.2.2 提供单选按钮182
9.2.3 添加下拉菜单183
9.2.4 添加范围滑块185
9.2.5 添加提交按钮和重置按钮185
第10章 使用JavaScript 处理表单187
10.1 创建FormHandler 模块188
10.1.1 jQuery简介189
10.1.2 导入jQuery189
10.1.3 使用selector参数配置FormHandler 实例190
10.2 添加提交处理程序192
10.2.1 提取数据193
10.2.2 接受并调用回调函数195
10.3 使用FormHandler196
10.4 UI 优化198
10.5 初级挑战:添加超级尺寸199
10.6 中级挑战:当滑块滑动时显示其数值199
10.7 高级挑战:添加选择200
第11章 从数据到DOM201
11.1 建立清单202
11.2 创建CheckList模块203
11.3 创建行构造函数204
11.4 在提交时创建清单行209
11.5 通过单击行完成订单212
11.5.1 创建CheckList.prototype.removeRow方法213
11.5.2 删除被覆盖的条目213
11.5.3 编写addClickHandler方法214
11.5.4 调用addClickHandler216
11.6 初级挑战:在描述中加入浓度信息217
11.7 中级挑战:不同口味,不同颜色217
11.8 高级挑战:允许编辑订单217
第12章 表单校验218
12.1 required属性218
12.2 使用正则表达式校验表单220
12.3 约束校验API220
12.3.1 监听input事件222
12.3.2 将input事件和有效性校验绑定223
12.3.3 触发有效性检查224
12.4 美化有效元素和无效元素225
12.5 中级挑战:为脱咖啡因咖啡进行自定义校验227
12.6 延展阅读:Webshim 库227
第13章 Ajax229
13.1 XMLHttpRequest对象230
13.2 RESTful Web服务230
13.3 RemoteDataStore模块231
13.4 向服务器发送数据232
13.4.1 使用jQuery的$.post 方法233
13.4.2 添加回调函数233
13.4.3 检查Ajax的请求和响应234
13.5 从服务器检索数据237
13.5.1 查看响应数据237
13.5.2 添加回调函数238
13.6 从服务器删除数据240
13.7 用RemoteDataStore替换DataStore241
13.8 中级挑战:校验远端服务器243
13.9 延展阅读:Postman243
第14章 Deferred和Promise244
14.1 Promise和Deferred245
14.2 返回Deferred246
14.3 通过then注册回调函数247
14.4 使用then处理失败的情况248
14.5 在仅支持回调函数的API上使用Deferred250
14.6 为DataStore配置Promise254
14.6.1 创建并返回Promise255
14.6.2 resolve一个Promise256
14.6.3 将其他DataStore方法Promise 化256
14.7 中级挑战:回退到Datastore259
第三部分 实时数据传输
第15章 Node.js入门262
15.1 Node和npm263
15.1.1 npm init264
15.1.2 npm脚本265
15.2 Hello, World265
15.3 添加一个npm脚本267
15.4 用文件提供服务268
15.4.1 用fs 模块读取文件269
15.4.2 处理请求URL269
15.4.3 使用path模块271
15.4.4 创建自定义模块272
15.4.5 使用自定义模块272
15.5 错误处理273
15.6 延展阅读:npm模块注册274
15.7 初级挑战:创建自定义错误页面275
15.8 延展阅读:MIME类型275
15.9 中级挑战:动态提供MIME类型276
15.10 高级挑战:将错误处理放到单独的模块中276
第16章 使用WebSocket进行实时通信277
16.1 配置WebSocket278
16.2 测试WebSocket服务器280
16.3 创建聊天服务器的功能281
16.4 第一次聊天!283
16.5 延展阅读:WebSocket库socket.io283
16.6 延展阅读:WebSocket服务284
16.7 初级挑战:我重复了我的消息吗?284
16.8 中级挑战:Speakeasy284
16.9 高级挑战:聊天机器人284
第17章 借助Babel使用ES6285
17.1 编译JavaScript的工具286
17.2 Chattrbox客户端应用程序288
17.3 迈出Babel的第一步289
17.4 使用Browserify 打包模块291
17.5 新增ChatMessage 类294
17.6 创建ws-client 模块297
17.6.1 处理连接298
17.6.2 处理事件并发送消息299
17.6.3 发出和回应一条消息301
17.7 延展阅读:将其他语言编译成JavaScript302
17.8 初级挑战:默认导入名称303
17.9 中级挑战:提醒连接关闭303
17.10 延展阅读:变量提升303
17.11 延展阅读:箭头函数305
第18章 继续ES6 探索之旅306
18.1 将jQuery 安装成一个Node 模块307
18.2 创建ChatForm 类307
18.3 创建ChatList 类310
18.8 初级挑战:给消息添加特效320
18.9 中级挑战:缓存消息320
18.10 高级挑战:独立的聊天室321
第四部分 应用架构
第19章 初识MVC和Ember324
19.1 Tracker325
19.2 Ember:一款MVC 框架326
19.2.1 安装Ember327
19.2.2 创建Ember应用328
19.2.3 启动服务器329
19.3 安装外部库和插件330
19.4 修改配置332
19.5 延展阅读:npm和Bower 的安装命令335
19.6 初级挑战:限制引入336
19.7 中级挑战:添加Font Awesome 库336
19.8 高级挑战:自定义NavBar336
第20章 路由选择、路由表、模型337
20.1 Ember生成器338
20.2 嵌套路由342
20.3 Ember Inspector344
20.4 指派模型344
20.5 beforeModel347
20.6 延展阅读:setupController和afterModel347
第21章 模型和数据绑定349
21.1 定义模型349
21.2 创建记录351
21.3 get和set353
21.4 计算属性354
21.5 延展阅读:检索数据357
21.6 延展阅读:保存或删除数据358
21.7 初级挑战:修改计算属性358
21.8 中级挑战:对新的目击记录进行标记358
21.9 高级挑战:添加称呼359
18.4 使用Gravatar312
18.5 请求用户名314
18.6 使用会话存储316
18.7 格式化和更新消息时间戳318
第22章 数据——适配器、序列化器和变换器360
22.1 适配器362
22.2 内容安全策略365
22.3 序列化器366
22.4 变换器368
22.5 延展阅读:Ember CLI Mirage368
22.6 中级挑战:内容安全369
22.7 高级挑战:Mirage369
第23章 视图与模板370
23.1 Handlebars371
23.2 模型371
23.3 辅助方法371
23.3.1 条件语句372
23.3.2 {{#each}}循环373
23.3.3 元素属性赋值375
23.3.4 链接377
23.4 自定义辅助方法380
23.5 初级挑战:为链接添加鼠标悬浮的内容382
23.6 中级挑战:修改日期格式383
23.7 高级挑战:创建一个自定义缩略图辅助方法383
第24章 控制器384
24.1 新建目击记录385
24.2 编辑目击记录392
24.3 删除目击记录395
24.4 路由动作396
24.5 初级挑战:目击记录详情页398
24.6 中级挑战:目击日期398
24.7 高级挑战:添加和删除目击者398
第25章 组件399
25.1 迭代器组件399
25.2 “拧干”组件的“水分”403
25.3 数据向下,动作向上404
25.4 类名绑定405
25.5 数据向下406
25.6 动作向上409
25.7 初级挑战:自定义提示信息411
25.8 中级挑战:将导航条转化为组件411
25.9 高级挑战:提示框数组412
第26章 后记413
26.1 最后的挑战413
26.2 插播一个广告413
26.3 感谢你414
|
|