HTML5数据推送应用开发
Darren Cook
刘帅 译
出版时间:2014年10月
页数:185
“数据推送是Web应用所涉及的一项关键技术,本书会告诉你如何利用最新的HTML5技术予以实现,并展示各种向后兼容方案的选择。不过在使用之前你仍然要回答这个问题:你的Web应用到底是否需要使用数据推送?当然,在你阅读完本书之后,答案便了然于心。”
——贾铮,百度资深研发工程师
“如果你希望一有最新消息发布,你的Web客户端就立即更新,那么就来学习本书吧。本书展示了利用HTML5和数据推送技术,使你的用户在几乎所有现代平台上及时收到最新消息。”
——Peter MacIntyre,Paladin Business Solutions总裁
“HTML5 SSE是响应式动态交互Web前端的未来趋势。本书阐述了如何在客户端和服务端实现SSE。此外,你还将学到PHP的相关知识,以及如何设计高性能、安全的Web应用。”
——Stuart Woodward,Hanamaru K.K.高级软件架构师

如今,数据推送技术在网站和Web应用中得到了广泛应用,比如在拍卖网络应用中推送最新出价,在售书网站推送新评论,在在线游戏中推送新高分,推送用户感兴趣的最新微博,等等。
本书是一本简明的数据推送技术指南,作者通过构建一个真实的例子,手把手地向读者展示如何利用HTML5 SSE(Server-Sent Events,服务端推送事件)这项非凡的技术,无需轮询或者用户交互,就可以将最新数据从服务端推送到客户端。
此外,本书还比较了数据推送和WebSocket的区别,阐释了如何使用不同的向后兼容解决方案,将应用的桌面和移动浏览器支持率从60%增加到99%。只要熟悉HTML、HTTP和基本的JavaScript,就可以开始你的学习之旅。
本书主要内容:
· 比较SSE、WebSocket或者数据拉取方案的区别,以便你在解决手头的问题时自如选择
· 开发一个包含后端和前端解决方案的实际SSE应用
· 解决错误处理、系统恢复和其他问题,使应用达到产品水准
· 分析不支持SSE的浏览器的两种向后兼容解决方案
· 处理安全问题,包括认证授权和不允许的域
· 开发在测试驱动SSE设计中有用的实际、可重用的数据
· 学习示例应用中不包含的SSE协议元素

Darren Cook 精通多种计算机语言,包括JavaScript、PHP以及C++,拥有20多年软件开发及项目管理经验,涉及金融交易系统、数据可视化工具、世界级公司的网站乃至电子游戏。他开发过类似Twitter的HTTP流数据网络服务系统,还为许多应用写过底层的套接字服务端/客户端协议,构建过使用SSE和WebSocket的应用。
  1. 前言  
  2. 第1章 SSE 及其他  
  3. 1.1 HTML5  
  4. 1.2 数据推送  
  5. 1.3 数据推送的其他名称  
  6. 1.4 可能会用到SSE 的应用  
  7. 1.5 和WebSocket 的对比  
  8. 1.6 什么时候数据推送是错误的选择  
  9. 1.7 决策、决策还是决策  
  10. 1.8 带我看代码吧
  11. 第2章 玩转SSE  
  12. 2.1 最简单的示例:前端
  13. 2.2 使用jQuery 吗
  14. 2.3 最简示例:后端
  15. 2.4 基于Node.js 的后端
  16. 2.4.1 基于Node.js 的最简Web 服务器  
  17. 2.4.2 用Node.js 做推送
  18. 2.4.3 在浏览器中运行
  19. 2.5 华丽退场
  20. 第3章 迷人的真实数据推送应用
  21. 3.1 问题领域
  22. 3.2 后端
  23. 3.3 前端
  24. 3.4 可复现的真实随机数据
  25. 3.5 精磨时间戳
  26. 3.6 控制好随机性
  27. 3.7 为时间的真正流逝留出余地
  28. 3.8 本章内容盘点
  29. 第4章 别安于现状
  30. 4.1 数据的更多构成
  31. 4.2 重构PHP  
  32. 4.3 重构JavaScript
  33. 4.4 历史数据存储
  34. 4.5 永久存储
  35. 4.6 现在我们是历史学家
  36. 第5章 走出象牙塔,打造产品级品质
  37. 5.1 错误处理
  38. 5.2 错误的JSON 
  39. 5.3 长连接
  40. 5.3.1 服务器端
  41. 5.3.2 客户端
  42. 5.3.3 SSE 重试
  43. 5.4 添加定期的关闭/ 重连
  44. 5.5 发送Last-Event-ID  
  45. 5.6 多路数据ID 
  46. 5.7 使用Last-Event-ID  
  47. 5.8 在重连时发送ID  
  48. 5.9 不要全局化,考虑本地化
  49. 5.10 阻止缓存
  50. 5.11 阻止死亡
  51. 5.12 精简的简单办法
  52. 5.13 本章回顾
  53. 第6章 向后兼容:其他数据推送策略
  54. 6.1 浏览器战争
  55. 6.2 什么是轮询
  56. 6.3 怎样做长轮询
  57. 6.4 给我看些代码
  58. 6.5 优化长轮询
  59. 6.6 如果JavaScript 被禁用怎么办
  60. 6.7 将长轮询移植到我们的外汇交易应用6.7.1 连接
  61. 6.7.2 长轮询和长连接
  62. 6.7.3 长轮询和连接错误
  63. 6.7.4 服务器端
  64. 6.7.5 处理数据
  65. 6.7.6 接起来
  66. 6.7.7 IE8 及更早版本
  67. 6.7.8 IE7 及其更早版本
  68. 6.8 蜿蜒曲折的轮询
  69. 第7章 向后兼容:另辟蹊径
  70. 7.1 共性
  71. 7.2 XHR  
  72. 7.3 iframe  
  73. 7.4 将XHR/iframe 移植到外汇交易应用  
  74. 7.4.1 后端的XHR  
  75. 7.4.2 前端的XHR  
  76. 7.4.3 前端的iframe  
  77. 7.4.4 接通XHR  
  78. 7.4.5 接通iframe  
  79. 7.5 感谢内存
  80. 7.6 把襁褓中的外汇交易应用放到床上  
  81. 第8章 关于SSE 的其他标准 
  82. 8.1 请求头
  83. 8.2 事件
  84. 8.3 多行数据
  85. 8.4 消息中的空白
  86. 8.5 又见请求头
  87. 8.6 这就是全部内容吗
  88. 第9章 认证授权:谁在敲门
  89. 9.1 Cookie  
  90. 9.2 认证授权(使用Apache 服务器)  
  91. 9.3 带有SSE 的HTTP POST  
  92. 9.4 多重鉴权选择
  93. 9.5 SSL 和CORS(连接到其他服务器) 
  94. 9.6 Allow-Origin  
  95. 9.7 完善访问控制
  96. 9.8 HEAD 和OPTIONS  
  97. 9.9 Chrome 和Safari 以及CORS 
  98. 9.10 构造函数与证书
  99. 9.11 withCredentials  
  100. 9.12 CORS 和向后兼容方案
  101. 9.12.1 CORS 和IE9 及其更早版本
  102. 9.12.2 IE8/IE9:总是使用长轮询
  103. 9.12.3 动态处理IE9及其更早版本
  104. 9.13 汇总
  105. 9.14 未来会有更多一样
  106. 附录A SSE 标准
  107. A.1 W3C 候选推荐标准2012.12.11  
  108. A.1.1 摘要
  109. A.1.2 本文档的状态
  110. A.1.3 目录
  111. A.1.4 引言
  112. A.1.5 一致性要求
  113. A.1.6 术语
  114. A.1.7 EventSource 接口
  115. A.1.8 处理模型
  116. A.1.9 解析事件流
  117. A.1.10 解释事件流
  118. A.1.11 注意事项
  119. A.1.12 无连接推送和其他特性
  120. A.1.13 垃圾回收
  121. A.1.14 IANA 须知
  122. A.1.15 参考文献
  123. A.1.16 致谢
  124. 附录B 重构:JavaScript 全局变量、对象和闭包
  125. B.1 示例
  126. B.2 问题是……
  127. B.3 JavaScript 对象和构造函数
  128. B.4 用对象的代码
  129. B.5 JavaScript 闭包
  130. 附录C PHP  
  131. C.1 PHP 中的类
  132. C.2 随机函数
  133. C.3 超全局变量
  134. C.4 数据处理
  135. C.5 密码
  136. C.6 休眠
书名:HTML5数据推送应用开发
作者:Darren Cook
译者:刘帅 译
国内出版社:人民邮电出版社
出版时间:2014年10月
页数:185
书号:978-7-115-37059-4
原版书书名:Data Push Apps with HTML5 SSE: Pragmatic Solutions for Real-
原版书出版商:O'Reilly Media
Darren Cook
 
Darren Cook 精通多种计算机语言,包括JavaScript、PHP以及C++,拥有20多年软件开发及项目管理经验,涉及金融交易系统、数据可视化工具、世界级公司的网站乃至电子游戏。他开发过类似Twitter的HTTP流数据网络服务系统,还为许多应用写过底层的套接字服务端/客户端协议,构建过使用SSE和WebSocket的应用。