首页>参考读物>计算机科学与技术>综合

构建实时Web应用:基于HTML5 WebSocket、PHP和jQuery
作者 : (美)Jason Lengstorf (英)Phil Leggetter 著
译者 : 肖智清 译
丛书名 : Web开发技术丛书
出版日期 : 2013-09-22
ISBN : 978-7-111-43983-7
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 284
开本 : 16
原书名 : Realtime Web Apps: HTML5 Websockets, Pusher, and the Web’s Next Big Thing
原出版社: Apress
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是希望在实时网站和应用程序开发方面快速进阶到的Web开发人员的指南。利用
实时Web应用程序,你就可以达到HTML5的WebSocket的速度,了解它是如何影响到Web的未来的。
通过一个切实可行的办法,本书将引导你使用HTML5、CSS3、jQuery的Pusher完成您的第一个应用程序。初步介绍本书中使用的技术后,你会立即进入创建一个实时的Q&A应用程序的过程,该应用程序能够在桌面浏览器和移动电话(包括iOS和Android)上运行。
本书主要内容:让你熟悉什么“实时”的含义,以及它如何改变Web;了解如何利用响应性的Web设计和jQuery来创建一个Web应用程序,而不是多个平台的具体应用;利用Pusher API开发实时应用程序;用PHP和MySQL构建一个Web应用程序的后端;在你的web应用程序中集成AJAX和实时交互性;使用OAuth 2.0允许用户登录到你的应用程序(包括Facebook和Twitter的OAuth)。

图书特色

前勒口
作者简介
Jason Lengstorf?对响应式设计有比较深入的理解,实战经验非常丰富。经常作为权威专家在世界各地的技术大会发表与Web技术相关的演讲,撰写了多本与PHP和jQuery相关的著作。他创办了Copter Labs,负责项目管理、设计、开发、Logo设计等业务。
Phil Leggetter?实时Web技术的布道者,资深软件开发工程师和咨询师,在开发并使用实时Web技术方面已经积累了丰富的经验。他曾帮助很多开发人员使用这些技术构建下一代的交互式实时Web应用。他撰写了大量技术文章,创建了大量简单的开源示例应用,经常在世界性的技术会议上发表演讲。
封面
实时Web应用开发领域的经典著作,由实时Web技术领域的布道者和资深Web开发工程师撰写
系统讲解构建实时Web应用的过程、方法与核心技术,同时包含大量代码和设计示例,实战性极强
本书系统讲解了如何在应用程序中构建交互式的实时功能,以提供更好的用户体验。本书使用HTML5 WebSocket技术,大大简化了学习的过程,使读者能更好地洞悉Web技术的发展方向。本书还讲解了如何利用实时Web技术来构建实时应用。在Web开发专家的引领下,你将逐步学会使用HTML5 WebSocket、PHP和jQuery来创建一个实时问答应用,这个应用能够兼容PC和手机等移动设备的浏览器。
本书主要内容
实时Web应用的技术原理,以及构建实时Web应用需要使用的技术和工具
使用Pusher构建实时Web应用
实时Web应用的规划与设计
在任何项目中轻松添加实时功能
使用响应式布局和jQuery效果
通过PHP和MySQL构建满足MVC框架的Web应用后端
在Web应用程序中整合实时交互功能

图书前言

几年前,我参加了一个名为“Keeping It Realtime”的会议。在那个会议中,许多演讲者都是实时行业中的资深人士,他们正在解决人们闻所未闻的问题。
  在那时,技术的力量正在推进,实时技术的应用领域非常令人惊讶。当时,我想了解更多的信息,所以我就立即开始了解实时技术。那么,我是怎样开始在自己的应用程序中使用这个神奇的新东西呢?
  我走进了距离我最近的一个分会场,与其中的听众坐在一起,我马上就被其中的内容迷住了。在讲台上,一个留着小胡子的人使用他的笔记本电脑,一边对着麦克风说话,一边用惊人的速度在Vim中编写代码。在那时,我能看出他在初始化socket.io,他已经完成了应用程序的一半。
  我马上就沉迷其中了。同时,我开始思考,这个令人惊叹的技术是不是只能供极少数的精英开发人使用?如果我没有那个教授实时技术的人那么厉害,我是否还应该构建自己的应用程序?
  如果你曾让一个聪明的开发人员做一些事,你也许会有这样的感觉:当某人的聪明程度到了一定境界后,他们有时就不会告诉我们他们曾经用过的技术。这意味着我们可能需要研究海量复杂的代码、标准和文档,或只能放弃。
  本书旨在帮助我们揭开实时编程的神秘面纱,使得所有具有中等PHP和JavaScript水平的开发人员都能够进行实时编程。如果你想即刻将实时技术用在实际的项目中,那么你并不需要知道构建Flash polyfill或维护Node.js的方法,你只需要学习本书即可。
  我们相信,虽然理论是有趣和必要的,但是实际开发更激动人心。实际开发将理论运用于实际,实现了理论的价值。在最后,将以非常简单的方式设置本书使用的技术,而不需要你学习新的编程语言或框架。本书基于的Web技术与那些最流行的应用、网站、内容管理系统使用的技术相同。
  实时技术应该属于广大的群众。现在,为自己倒一杯咖啡,或沏一杯茶,开始学习实时技术,你能够在实时技术没落前编写出具有实时功能的程序。
致谢
  本书的诞生要感谢Phil Leggetter,他使进度不断推进。他添加了大量与技术有关的背景信息,并就添加详细的解释和例子做了很多工作。没有他的帮助,本书可能就半途夭折了。
  Ben和Ana:非常感谢你们的耐心。
  Alison:感谢你在我每天晚上通宵写书的情形下没有弃我而去。
  Nate:感谢你提供友好的竞争环境,在我完成每一个目标的情况下提醒我还需进行下一步的工作。
  我的父亲:感谢您一直支持我。我的妈妈:感谢这些年来您与爸爸一起将我哺育成人。
  Drew:感谢你来到Copter Labs,使得我有足够的时间来完成这个工作。Alex、Anne、Jason、Kevin、Rob、Roger和Wes:感谢你们加入Copter团队。
  由于Richelle、Troy、Taunja、Chris和其他朋友的帮助,使我避免成为从不打扫卫生的“隐士”,感谢你们继续邀请我做一些事情。

——Jason Lengstorf

上架指导

计算机\程序设计

封底文字

本书系统讲解了如何在应用程序中构建交互式的实时功能,以提供更好的用户体验。本书使用了HTML5的WebSocket技术,大大简化了学习的过程,使读者能更好地洞悉Web技术的发展方向。本书还讲解了如何利用实时Web技术Pusher来构建实时应用程序。 在Web开发专家的引领下,你将逐步学会使用HTML5、CSS3、jQuery和Pusher来创建一个实时的问答应用程序,这个程序能够兼容PC浏览器和手机等移动设备的浏览器。
本书主要内容:
● 实时Web应用的技术原理,以及构建实时Web应用需要使用的技术和工具
●使用Pusher构建实时Web应用
●实时Web应用的规划与设计
●在任何项目中轻松添加实时功能
● 使用能根据浏览器窗口大小做出响应的布局和jQuery效果
● 通过PHP和MySQ构建满足MVC框架的Web应用后端
● 在Web应用程序中整合实时交互功能

作者简介

(美)Jason Lengstorf (英)Phil Leggetter 著:暂无简介

译者简介

肖智清 译:暂无简介

译者序

当前,实时应用如雨后春笋般涌现出来。在各种智能手机的通知栏,以及Windows等操作系统的右下角弹窗区和通知区,常常能看到各类应用程序推送的消息。除了社交软件之外,甚至即时通信软件、安全软件等,都开始使用实时技术发布消息。实时技术能在新事件发生时,让用户即刻获得新的消息。本书对实时技术进行了详尽的介绍。
  本书将理论与实际较好地结合了起来。第一部分着重介绍实时技术的来龙去脉,并做了一些准备工作。这让读者对整个开发流程和相关技术的理论基础有了更好的了解,使读者不仅“知其然”,而且“知其所以然”。第二部分专门介绍设计过程。俗话说,“磨刀不误砍柴工”,好的设计可以让开发事半功倍。第三部分则讲述开发过程。另外,附录介绍了一种用户认证的方法OAuth。这类用户认证方法不需要用户在新的网站上注册。在国内,可能出于对用户信息收集的考虑,这种用户认证方法使用范围比较小。事实上,译者认为,如果用法得当,这种认证方法能够更快且更好地收集用户信息。译者推荐使用这样的认证方式。
  如果你认真阅读全书,将对以下技术有所了解:HTML(包括HTML5)、CSS(包括CSS3)、JavaScript(以及jQuery)、PHP、MySQL(与SQL语言)、Pusher(及其API)、OAuth(及Facebook的对应API),另外,还涉及Photoshop的一些使用技巧。
  本书源代码可以在http://www.apress.com/9781430246206中的Source Code/Download部分下载。源代码都以完整的项目给出。在配置好开发环境后,这些项目可以直接运行。
  本书是一本开发技术进阶书籍。适合阅读本书的读者有:
  对编程有一定的了解,对Web技术有所耳闻,想要更深入地学习Web开发技术的读者。
  有若干年的开发经验,正在或将要从事Web 2.0、社交网络开发的开发人员。
  想要学习最新Web开发技术(如HTML5、CSS3)的大学师生与研究人员。
  需要对网络开发流程和涉及的技术有全面了解的技术管理人员或创业者。
  本书中文版由清华大学肖智清翻译。在翻译过程中,译者将以帮助读者理解并掌握开发技术为根本宗旨,力求保证术语的准确和语言的通顺,力争做到“信、达、雅”。限于译者水平,加上时间仓促,书中难免存在错误和不足,恳请广大读者和同行批评指正。译者的电子邮箱是: xzq.xiaozhiqing@gmail.com。
  这里要感谢为本书中文版出版做出贡献的所有工作人员。其中,机械工业出版社的谢晓芳是本书的责任编辑,她对本书进行了全面细致的审校,并提出了许多建设性意见。同时,还要感谢机械工业出版社的其他编辑为提升本书质量做出的审稿工作,与他们合作是一个愉快的过程。最后,还要感谢我的亲友,特别是我的爸爸和妈妈,他们在本书翻译期间给予我极大的支持。
  感谢您选择本书。祝您学习快乐!

肖智清
于清华大学

图书目录

译者序
前言
第一部分 熟悉必备技术
第1章 什么是实时 / 2
1.1 传媒的演化 / 2
1.1.1 是网站而不是Web应用 / 3
1.1.2 HTTP解决方案 / 4
1.1.3 一个先要解决的问题:实时究竟意味着什么 / 5
1.1.4 AJAX / 5
1.1.5 轮询 / 5
1.1.6 HTTP长轮询 / 7
1.1.7 HTTP流 / 8
1.1.8 在Web浏览器中使用基于HTTP的解决方案的其他问题 / 9
1.2 解决方案:WebSocket / 11
1.3 为什么要学习实时Web技术 / 13
1.4 请即刻在你的应用中使用实时Web技术 / 14
1.5 小结 / 14
第2章 工具 / 15
2.1 我们要构建什么 / 15
2.2 选择工具 / 16
2.2.1 HTML5 / 16
2.2.2 CSS3 / 19
2.2.3 JavaScript和jQuery / 22
2.2.4 PHP / 26
2.2.5 MySQL / 28
2.2.6 HTML5的WebSocket技术和Pusher / 31
2.2.7 OAuth / 33
2.3 小结 / 35
第3章 Pusher / 36
3.1 Pusher简史 / 36
3.2 为什么要使用Pusher / 36
3.2.1 扩展性 / 37
3.2.2 WebSocket、旧技术支持和自动重连接 / 37
3.2.3 其他客户端库 / 37
3.2.4 REST API / 37
3.2.5 服务器库 / 37
3.2.6 开发人员工具 / 38
3.2.7 文档 / 38
3.3 Pusher中的术语 / 38
3.4 开始使用Pusher / 39
3.5 使用Pusher发送事件 / 45
3.6 调试Pusher应用程序 / 54
3.7 小结 / 55
第二部分 规划应用
第4章 选择Web应用 / 58
4.1 为什么要在Web应用与原生应用间做抉择 / 58
4.2 要考虑的因素 / 58
4.2.1 了解用户 / 59
4.2.2 市场推广 / 59
4.2.3 销售 / 61
4.2.4 发布应用程序 / 61
4.2.5 外观和性能 / 62
4.2.6 开发 / 63
4.3 根据需要进行选择 / 66
4.3.1 选择Web应用而不是原生应用 / 67
4.3.2 最终的决定:构建Web应用程序 / 67
4.4 小结 / 68
第5章 确定应用的功能和结构 / 69
5.1 应用要做什么 / 69
5.2 应用不做什么 / 69
5.3 用户扮演的角色 / 70
5.3.1 主持人 / 70
5.3.2 参与者 / 70
5.4 前端规划 / 71
5.4.1 要使用的技术 / 71
5.4.2 使用HTML5 / 71
5.4.3 CSS3、媒体查询以及它们如何影响设计和HTML / 74
5.4.4 效果和动画 / 78
5.5 后端规划 / 79
5.6 将所有这些整合入线框图中 / 85
5.6.1 筹划主页 / 85
5.6.2 筹划参与者的问答页面 / 85
5.6.3 筹划主持人的问答页面 / 86
5.7 小结 / 87
第三部分 构建基本内容
第6章 设计应用 / 90
6.1 为设计设置目标 / 90
6.2 定义颜色面板 / 91
6.3 选择字体 / 91
6.4 设计常见的页面元素 / 93
6.4.1 创建页眉 / 93
6.4.2 创建页脚 / 95
6.4.3 表单元素 / 96
6.5 设计主页视图 / 100
6.5.1 创建房间的表单 / 100
6.5.2 加入房间的表单 / 102
6.6 设计房间视图 / 104
6.6.1 设计参与者视图 / 104
6.6.2 设计关闭的房间视图 / 105
6.6.3 设计主持人视图 / 105
6.7 小屏幕布局 / 107
6.8 小结 / 108
第7章 创建HTML和CSS标记 / 109
7.1 开始构建基本部分:设置HTML5文档 / 109
7.2 获得需要的字体 / 110
7.3 常见的元素 / 113
7.3.1 页眉标记 / 113
7.3.2 页脚标记 / 114
7.3.3 样式 / 115
7.3.4 使得页眉和页脚具有响应 / 119
7.4 开发主页视图 / 120
7.4.1 编写标记 / 120
7.4.2 添加媒体查询 / 126
7.5 开发参与者的活动房间视图 / 127
7.5.1 编写标记 / 128
7.5.2 实现CSS / 131
7.5.3 添加媒体查询 / 136
7.6 开发参与者的关闭的房间的视图 / 139
7.6.1 尽可能少引入新标记 / 139
7.6.2 添加样式 / 140
7.6.3 关于媒体查询 / 140
7.7 开发主持人的房间视图 / 141
7.7.1 修改现有的标记 / 141
7.7.2 更新CSS / 143
7.7.3 更新媒体查询 / 144
7.8 小结 / 146
第8章 构建后端:第1部分 / 147
8.1 计划简单的MVC框架 / 147
8.1.1  确定文件夹结构 / 147
8.1.2 为所有的请求设置路由 / 148
8.1.3 设置实用工具函数 / 152
8.1.4 结束路由的编写 / 161
8.1.5 设置核心类 / 163
8.1.6 创建抽象模型类 / 170
8.2 增加页眉标记和页脚标记 / 171
8.3 构建主页 / 174
8.3.1 创建主页控制器 / 174
8.3.2 创建主页视图 / 175
8.4 添加错误处理程序 / 178
8.4.1 创建错误控制器 / 178
8.4.2 创建错误视图 / 179
8.4.3 添加与错误有关的样式 / 180
8.4.4 测试错误页面 / 180
8.5 构建数据库 / 181
8.6 处理表单提交 / 182
8.6.1 计划表单提交工作流程 / 182
8.6.2 设置并检查有效的动作 / 183
8.6.3 防止重复提交和欺骗性的提交 / 184
8.6.4 编写表单处理方法 / 185
8.7 小结 / 189
第9章 构建后端:第2部分 / 190
9.1 构建问题 / 190
9.1.1 构建Question控制器 / 190
9.1.2 添加问题视图 / 192
9.1.3 完成视图编写 / 193
9.1.4 添加提出问题表单 / 200
9.1.5 构建问题模型 / 201
9.1.6 为控制器添加表单处理程序和数据访问方法 / 205
9.2 构建房间 / 209
9.2.1 增加Room控制器 / 209
9.2.2 构建房间模型 / 216
9.2.3 向Room控制器添加表单处理程序 / 221
9.3 测试所有代码 / 225
9.3.1 创建第一个房间 / 225
9.3.2 关闭房间 / 226
9.3.3 重新打开房间 / 227
9.3.4 加入房间 / 227
9.3.5 提出第一个问题 / 228
9.3.6 为问题投票 / 228
9.3.7 回答问题 / 229
9.4 小结 / 231
第10章 实现实时事件和jQuery效果 / 232
10.1 添加需要的证书和库 / 232
10.1.1 获得Pusher的API证书 / 232
10.1.2 下载Pusher的PHP API包装 / 234
10.1.3 载入Pusher的JavaScript API包装 / 234
10.1.4 载入jQuery / 235
10.2 在后端实现实时 / 235
10.2.1 创建事件 / 235
10.2.2 测试实时事件 / 236
10.3 在前端实现实时 / 238
10.3.1 订阅通道 / 238
10.3.2 绑定事件 / 239
10.4 增加效果 / 240
10.4.1 处理房间事件 / 241
10.4.2 为增加新问题添加动画 / 242
10.4.3 为问题增加投票 / 242
10.4.4 回答问题中的动画和问题重排 / 246
10.5 小结 / 248
附录A 深入理解OAuth / 249

教学资源推荐
作者: 张国德 李红 主编
作者: (美)Thomas Pittman(阿肯色大学)  James Peters(阿肯色大学) 著
作者: 雷震甲 编著
作者: 沈华 杨晓艳 马驰 杨华 编著