《单页Web应用》是2014年9月1日人民邮电出版社出版的图书,作者是米可夫斯基 (Michael S. Mikowski)、鲍威尔 (Josh C. Powell)。

书    名

单页Web应用

别    名

JavaScript从前端到后端

作    者

米可夫斯基 (Michael S. Mikowski)/鲍威尔 (Josh C. Powell)

译    者

包勇明出版社

人民邮电出版社

出版时间

2014年9月1日

页    数

388 页

定    价

CNY 69.00

装    帧

平装

ISBN

9787115363626

单页Web应用内容简介

编辑

语音

《单页Web应用:JavaScript从前端到后端》是设计和构建大规模JavaScript单页Web应用(SPA)的宝贵指南,这些应用从前端到后端都使用JavaScript:浏览器端应用、Web服务器和数据库。

《单页Web应用:JavaScript从前端到后端》大约三分之二的内容专门讲解单页Web应用的客户端开发,先定义何为JavaScript单页应用,接着介绍书中使用的单页Web应用的架构,然后依次讲解Shell模块、功能模块、Model模块、Data模块和Fake模块等,其中还专门拿出一整章讲解开发单页Web应用时需要掌握的JavaScript概念和特性;剩下三分之一的内容讲解单页Web应用的服务器端开发和其他与单页Web应用相关的知识,如Node.js、MongoDB、CDN、搜索引擎优化、数据分析、错误日志以及各个层级的缓存等。本书最后的两个附录分别介绍JavaScript的编码规范和单页Web应用的测试。

《单页Web应用:JavaScript从前端到后端》适合Web开发人员、架构师和产品经理阅读,需要读者至少要有些JavaScript、HTML和CSS的开发经验。[1]

单页Web应用作者简介

编辑

语音

本书作者是架构师和工程管理者。Michael Mikowski已经开发过许多商业级单页Web应用,其中有个平台每年要处理的请求超过1000亿次。Josh Powell搭建过一些流量非常大的网站。

单页Web应用目录

编辑

语音

第一部分 单页应用简介

第1章 第一个单页应用 3

1.1 定义、一些历史和一些关注点 4

1.1.1 一些历史 4

1.1.2 是什么导致JavaScript单页应用姗姗来迟 5

1.1.3 我们的关注点 8

1.2 构建第一个单页应用 9

1.2.1 定义目标 9

1.2.2 创建文件结构 10

1.2.3 使用Chrome开发者工具 10

1.2.4 开发HTML和CSS 11

1.2.5 添加JavaScript 12

1.2.6 使用Chrome开发者工具查看应用 17

1.3 精心编写的单页应用的用户效益 19

1.4 小结 20

第2章 温故JavaScript 22

2.1 变量作用域 24

2.2 变量提升 27

2.3 高级变量提升和执行环境对象 28

2.3.1 提升 28

2.3.2 执行环境和执行环境对象 30

2.4 作用域链 33

2.5 JavaScript对象和原型链 35

2.6 函数——更深入的窥探 43

2.6.1 函数和匿名函数 43

2.6.2 自执行匿名函数 44

2.6.3 模块模式——将私有变量引入JavaScript 46

2.6.4 闭包 51

2.7 小结 54

第二部分 单页应用客户端

第3章 开发Shell 57

3.1 深刻理解Shell 57

3.2 创建文件和名字空间 59

3.2.1 创建文件结构 59

3.2.2 编写应用的HTML文件 60

3.2.3 创建CSS根名字空间 61

3.2.4 创建JavaScript根名字空间 62

3.3 创建功能容器 64

3.3.1 选取策略 64

3.3.2 编写Shell的HTML 64

3.3.3 编写Shell的CSS 65

3.4 渲染功能容器 68

3.4.1 将HTML转换为JavaScript 68

3.4.2 在JavaScript中添加HTML模板 69

3.4.3 编写Shell的样式表 71

3.4.4 指示应用使用Shell 73

3.5 管理功能容器 74

3.5.1 编写展开或收起聊天滑块的方法 74

3.5.2 给聊天滑块添加点击事件处理程序 76

3.6 管理应用状态 80

3.6.1 理解浏览器用户所期望的行为 80

3.6.2 选取一个策略来管理历史控件 81

3.6.3 当发生历史事件时,更改锚 82

3.6.4 使用锚来驱动应用状态 83

3.7 小结 89

第4章 添加功能模块 90

4.1 功能模块策略 91

4.1.1 与第三方模块的比较 91

4.1.2 功能模块和分形MVC模式 93

4.2 创建功能模块文件 96

4.2.1 规划文件结构 96

4.2.2 填写文件 97

4.2.3 我们创建了什么 103

4.3 设计方法API 103

4.3.1 锚接口模式 104

4.3.2 Chat的配置API 105

4.3.3 Chat的初始化API 106

4.3.4 Chat的setSliderPosition API 107

4.3.5 配置和初始化的级联 107

4.4 实现功能API 109

4.4.1 样式表 110

4.4.2 修改Chat 114

4.4.3 清理Shell 120

4.4.4 详细解释执行的过程 125

4.5 添加经常使用的方法 127

4.5.1 removeSlider方法 127

4.5.2 handleResize方法 129

4.6 小结 133

第5章 构建Model 134

5.1 理解Model 135

5.1.1 我们将要构建什么 135

5.1.2 Model做什么 137

5.1.3 Model不做什么 137

5.2 创建Model和其他文件 138

5.2.1 规划文件结构 138

5.2.2 填充文件 139

5.2.3 使用统一的触摸——鼠标库 145

5.3 设计people对象 145

5.3.1 设计person对象 146

5.3.2 设计people对象的API 147

5.3.3 给people对象的API编写文档 150

5.4 构建people对象 151

5.4.1 创建伪造的人员列表 152

5.4.2 开始构建people对象 154

5.4.3 完成people对象的构建 157

5.4.4 测试people对象的API 164

5.5 在Shell中开启登入和登出的功能 166

5.5.1 设计用户登入的体验 167

5.5.2 更新Shell的JavaScript 167

5.5.3 更新Shell的样式表 169

5.5.4 使用UI测试登入和登出 170

5.6 小结 171

第6章 完成Model和Data模块 172

6.1 设计chat对象 172

6.1.1 设计方法和事件 173

6.1.2 给chat对象的API添加文档 175

6.2 构建chat对象 177

6.2.1 先创建chat对象的join方法 177

6.2.2 更新Fake以响应chat.join 179

6.2.3 测试chat.join方法 181

6.2.4 给chat对象添加消息传输功能 182

6.2.5 更新Fake,模拟消息传输功能 187

6.2.6 测试chat的消息传输功能 189

6.3 给Model添加Avatar功能 190

6.3.1 给chat对象添加Avatar功能 190

6.3.2 修改Fake来模拟头像功能 191

6.3.3 测试头像功能 192

6.3.4 测试驱动开发 193

6.4 完成Chat功能模块 195

6.4.1 更新Chat的JavaScript 196

6.4.2 更新样式表 203

6.4.3 测试Chat UI 207

6.5 创建Avatar功能模块 208

6.5.1 创建Avatar的JavaScript 209

6.5.2 创建Avatar的样式表 213

6.5.3 更新Shell和浏览文档 214

6.5.4 测试Avatar功能模块 215

6.6 数据绑定和jQuery 216

6.7 创建Data模块 217

6.8 小结 220

第三部分 单页应用服务器

第7章 Web服务器 223

7.1 服务器的作用 223

7.1.1 认证和授权 224

7.1.2 验证 224

7.1.3 数据的保存和同步 225

7.2 Node.js 225

7.2.1 为什么选择Node.js 225

7.2.2 使用Node.js创建‘Hello World’应用 226

7.2.3 安装并使用Connect 229

7.2.4 添加Connect中间件 230

7.2.5 安装并使用Express 231

7.2.6 添加Express中间件 234

7.2.7 Express的使用环境 235

7.2.8 Express的静态文件服务 236

7.3 高级路由 237

7.3.1 用户对象的CRUD路由 237

7.3.2 通用CRUD路由 243

7.3.3 把路由放到单独的Node.js模块里面 246

7.4 添加认证和授权 249

7.5 Web socket和Socket.IO 251

7.5.1 简单的Socket.IO应用程序 251

7.5.2 Socket.IO和消息服务器 254

7.5.3 使用Socket.IO更新JavaScript 255

7.6 小结 258

第8章 服务器数据库 259

8.1 数据库的作用 259

8.1.1 选择数据存储 260

8.1.2 消除数据转换 260

8.1.3 把逻辑放在需要的地方 261

8.2 MongoDB简介 262

8.2.1 面向文档的存储 262

8.2.2 动态文档结构 262

8.2.3 开始使用MongoDB 263

8.3 使用MongoDB驱动程序 264

8.3.1 准备项目文件 265

8.3.2 安装并连接MongoDB 265

8.3.3 使用MongoDB的CRUD方法 267

8.3.4 向服务器应用添加CRUD操作 270

8.4 验证客户端数据 274

8.4.1 验证对象类型 274

8.4.2 验证对象 276

8.5 创建单独的CRUD模块 283

8.5.1 组织文件结构 284

8.5.2 把CRUD移到它自己的模块里面 287

8.6 构建chat模块 292

8.6.1 开始创建chat模块 293

8.6.2 创建adduser消息处理程序 295

8.6.3 创建updatechat消息处理程序 299

8.6.4 创建disconnect消息处理程序 301

8.6.5 创建updateavatar消息处理程序 302

8.7 小结 305

第9章 单页应用发布准备 306

9.1 单页应用针对搜索引擎的优化 307

9.2 云和第三方服务 310

9.2.1 站点分析 310

9.2.2 记录客户端错误 312

9.2.3 内容分发网络 314

9.3 缓存和缓存破坏 314

9.3.1 缓存时机 315

9.3.2 Web存储 316

9.3.3 HTTP缓存 317

9.3.4 服务器缓存 320

9.3.5 数据库查询缓存 325

9.4 小结 326

附录A JavaScript编码标准 328

附录B 测试单页应用 361[1]

词条图册

更多图册

参考资料

1.

单页Web应用

.豆瓣读书[引用日期2015-07-01]

单页应用请求服务器,单页Web应用相关推荐

  1. ajax当页post请求,tag落地页--通过ajax-post请求数据

    查询所有tag及其对应跳转链接 $tags = get_tags(array('get'=>'all')); $output .= ' '; if($tags) { foreach ($tags ...

  2. vue init webpack缺少标识符_vue 如何从单页应用改造成多页应用_vue.js

    最近接到这样一个需求,将之前的三个项目合并成一个,并且要做成后台可配置化,前端动态引入组件的模板化框架. 听起来是不是很拗口...我自己当时都蒙了. 简单分析下需求,就是,项目A/B/C的内容是交叉的 ...

  3. php博客系统 加载评论,Yii实现单用户博客系统文章详情页插入评论表单的方法...

    本文实例讲述了Yii实现单用户博客系统文章详情页插入评论表单的方法.分享给大家供大家参考,具体如下: action部分: function test($objs) { $objs->var=10 ...

  4. activiti工作流在线表单设计功能(activiti + ueditor + Ueditor Web Form De

    分享一下我老师大神的人工智能教程吧.零基础,通俗易懂!风趣幽默!http://www.captainbed.net/ 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 之前实现了 ...

  5. 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

    上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...

  6. python:Fastapi - 请求表单与文件

    简单絮叨下,如有问题请私信 上篇文章主要唠了接口响应的一些东西,今天主要是唠Form表单和文件处理.表单可以理解为数据采集,而文件处理就是在获得客户端的文件进行数据返回或者直接上传服务器. fasta ...

  7. 页游服务器系统,页游服务器端

    页游服务器端 内容精选 换一换 检查头显是否连接到平台并获取可连接GPU服务器的EIP.检查云服务器安全组是否放通对应端口.如果云服务器状态由"闲置"变为"正常" ...

  8. curl post请求表单_如何使用cURL发出POST请求

    在本文中,我们将解释如何使用cURL发出POST请求.HTTP POST方法用于将数据发送到远程服务器. cURL是一种命令行实用程序,用于使用一种受支持的协议从远程服务器传输数据或将数据传输到远程服 ...

  9. lvs服务器需要开启web服务么_如何检测 Web 服务请求丢失问题

    导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测.故障演练.JVM.应用容器.服务框架.流量调度.监控.诊断等多个技术领域,以更结构化的 ...

  10. php模拟表单提交登录,PHP模拟表单的post请求实现登录

    'stuid' => $stuid, 'pwd' => $pwd ); $ch = curl_init (); //初始化curl curl_setopt ( $ch, CURLOPT_U ...

最新文章

  1. 职称计算机word模拟题,2015职称计算机考试Word2003模拟题及答案
  2. 台式电脑配置单_5000元最强组组装电脑,游戏配置,组装电脑配置2020年11月更新...
  3. groupByKey、reduceByKey区别(转)
  4. oracle 区分配,ORACLE自动段管理的区分配大小测试
  5. 深度学习激活函数总结
  6. 21天Jmeter打卡Day11配置元件之CSV数据文件配置
  7. qemu 运行arm linux,在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行...
  8. ORA-22285: 对不存在的目录或文件进行 FILEOPEN 操作 ORA-06512: 在 SYS.DBMS_LOB, line 523 ORA-06512: 在 line 6 查看错误堆
  9. 两个表格内容怎么合并
  10. 【Python实战】爬取5K分辨率超清唯美壁纸
  11. 爬虫-大众点评评论信息(思路)
  12. PicPick滚屏截图
  13. 强制双休!传腾讯光子调整加班机制,21 点前必须离开工位
  14. 新网站建设的完整步骤
  15. BZOJ4372: 烁烁的游戏(动态点分治)
  16. 写程序电脑常用快捷键
  17. Amazon kindle 4 note
  18. DJI Care 行业无忧悦享基础版
  19. python傻瓜瓜入门
  20. 图文教程:excel2007打印区域设置

热门文章

  1. Word 只读模式修改
  2. GEE-Python遥感大数据分析
  3. Windows桌面任务栏应用图标变白怎么办?
  4. 作业管理系统设计报告_Struts2_设计报告
  5. 【locust】locust与jmeter性能对比
  6. javascript 属性的特性 二十五
  7. debian设置IP
  8. 熟女给老实木讷男孩的恋爱建议(转帖)
  9. 程序员平时都是木讷的,但是谈到计算机或者程序的时候简直就是天才—兼借题发挥,谈谈语言及工具的选择...
  10. Python 自定义程序打包 --- face_recognition 篇