HTML5數據推送套用開發是一本圖書,《HTML5數據推送套用開發》詳細介紹了SSE(Server-Sent Event,服務端推送事件)。SSE是一種允許服務端向客戶端推送新數據的HTML5技術。
基本介紹
編輯推薦,圖書簡介,作者簡介,圖書目錄,
編輯推薦
如今,數據推送技術在網站和Web套用中得到了廣泛套用,比如在拍賣網路套用中推送**出價,在售書網站推送新評論,在線上遊戲中推送新高分,推送用戶感興趣的**微博,等等。
本書是一本簡明的數據推送技術指南,作者通過構建一個真實的例子,手把手地向讀者展示如何利用HTML5 SSE(Server-Sent Events,服務端推送事件)這項非凡的技術,無需輪詢或者用戶互動,就可以將**數據從伺服器端推送到客戶端。
此外,本書還比較了數據推送和WebSocket的區別,闡釋了如何使用不同的向後兼容解決方案,將套用的桌面和移動瀏覽器支持率從60%增加到99%。只要熟悉HTML、HTTP和基本的JavaScript,就可以開始你的學習之旅。
本書主要內容:
比較SSE、WebSocket或者數據拉取方案的區別,以便你在解決手頭的問題時自如選擇
開發一個包含後端和前端解決方案的實際SSE套用
解決錯誤處理、系統恢復和其他問題,使套用達到產品水準
分析不支持SSE的瀏覽器的兩種向後兼容解決方案
處理安全問題,包括認證授權和不允許的域
開發在測試驅動SSE設計中有用的實際、可重用的數據
學習示例套用中不包含的SSE協定元素
本書是一本簡明的數據推送技術指南,作者通過構建一個真實的例子,手把手地向讀者展示如何利用HTML5 SSE(Server-Sent Events,服務端推送事件)這項非凡的技術,無需輪詢或者用戶互動,就可以將**數據從伺服器端推送到客戶端。
此外,本書還比較了數據推送和WebSocket的區別,闡釋了如何使用不同的向後兼容解決方案,將套用的桌面和移動瀏覽器支持率從60%增加到99%。只要熟悉HTML、HTTP和基本的JavaScript,就可以開始你的學習之旅。
本書主要內容:
比較SSE、WebSocket或者數據拉取方案的區別,以便你在解決手頭的問題時自如選擇
開發一個包含後端和前端解決方案的實際SSE套用
解決錯誤處理、系統恢復和其他問題,使套用達到產品水準
分析不支持SSE的瀏覽器的兩種向後兼容解決方案
處理安全問題,包括認證授權和不允許的域
開發在測試驅動SSE設計中有用的實際、可重用的數據
學習示例套用中不包含的SSE協定元素
圖書簡介
《HTML5數據推送套用開發》詳細介紹了SSE(Server-Sent Event,服務端推送事件)。SSE是一種允許服務端向客戶端推送新數據的HTML5技術。利用這種技術,網頁可以迅速載入,並且能及時獲得用戶感興趣的最新數據。相比數據拉取,SSE是更優的解決方案,能最大限度地降低延遲。《HTML5數據推送套用開發》通過豐富的示例詳細敘述了SSE的優勢、它在的日常生活中的套用、目前的瀏覽器支持情況以及兼容解決方案等內容。
只要你略微了解一點HTML、HTTP和JavaScript,就可以順利閱讀《HTML5數據推送套用開發》。
只要你略微了解一點HTML、HTTP和JavaScript,就可以順利閱讀《HTML5數據推送套用開發》。
作者簡介
Darren Cook
精通多種計算機語言,包括JavaScript、PHP以及C++,擁有20多年軟體開發及項目管理經驗,涉及金融交易系統、數據可視化工具、世界級公司的網站乃至電子遊戲。他開發過類似Twitter的HTTP流數據網路服務系統,還為許多套用寫過底層的套接字伺服器端/客戶端協定,構建過使用SSE和WebSockets的套用。
精通多種計算機語言,包括JavaScript、PHP以及C++,擁有20多年軟體開發及項目管理經驗,涉及金融交易系統、數據可視化工具、世界級公司的網站乃至電子遊戲。他開發過類似Twitter的HTTP流數據網路服務系統,還為許多套用寫過底層的套接字伺服器端/客戶端協定,構建過使用SSE和WebSockets的套用。
圖書目錄
前言
第1章 SSE及其他
1.1 HTML5
1.2 數據推送
1.3 數據推送的其他名稱
1.4 可能會用到SSE的套用
1.5 和WebSocket的對比
1.6 什麼時候數據推送是錯誤的選擇
1.7 決策、決策還是決策
1.8 帶我看代碼吧
第2章 玩轉SSE
2.1 最簡單的示例:前端
2.2 使用jQuery嗎
2.3 最簡示例:後端
2.4 基於Node.js的後端
2.4.1 基於Node.js的最簡Web伺服器
2.4.2 用Node.js做推送
2.4.3 在瀏覽器中運行
2.5 華麗退場
第3章 迷人的真實數據推送套用
3.1 問題領域
3.2 後端
3.3 前端
3.4 可復現的真實隨機數據
3.5 精磨時間戳
3.6 控制好隨機性
3.7 為時間的真正流逝留出餘地
3.8 本章內容盤點
第4章 別安於現狀
4.1 數據的更多構成
4.2 重構PHP
4.3 重構JavaScript
4.4 歷史數據存儲
4.5 永久存儲
4.6 現在我們是歷史學家
第5章 走出象牙塔,打造產品級品質
5.1 錯誤處理
5.2 錯誤的JSON
5.3 長連線
5.3.1 伺服器端
5.3.2 客戶端
5.3.3 SSE重試
5.4 添加定期的關閉/重連
5.5 傳送Last-Event-ID
5.6 多路數據ID
5.7 使用Last-Event-ID
5.8 在重連時傳送ID
5.9 不要全局化,考慮本地化
5.10 阻止快取
5.11 阻止死亡
5.12 精簡的簡單辦法
5.13 本章回顧
第6章 向後兼容:其他數據推送策略
6.1 瀏覽器戰爭
6.2 什麼是輪詢
6.3 怎樣做長輪詢
6.4 給我看些代碼
6.5 最佳化長輪詢
6.6 如果JavaScript被禁用怎么辦
6.7 將長輪詢移植到我們的外匯交易套用
6.7.1 連線
6.7.2 長輪詢和長連線
6.7.3 長輪詢和連線錯誤
6.7.4 伺服器端
6.7.5 處理數據
6.7.6 接起來
6.7.7 IE8及更早版本
6.7.8 IE7及其更早版本
6.8 蜿蜒曲折的輪詢
第7章 向後兼容:另闢蹊徑
7.1 共性
7.2 XHR
7.3 iframe
7.4 將XHR/iframe移植到外匯交易套用
7.4.1 後端的XHR
7.4.2 前端的XHR
7.4.3 前端的iframe
7.4.4 接通XHR
7.4.5 接通iframe
7.5 感謝記憶體
7.6 把襁褓中的外匯交易套用放到床上
第8章 關於SSE的其他標準
8.1 請求頭
8.2 事件
8.3 多行數據
8.4 訊息中的空白
8.5 又見請求頭
8.6 這就是全部內容嗎
第9章 認證授權:誰在敲門
9.1 Cookie
9.2 認證授權(使用Apache伺服器)
9.3 帶有SSE的HTTP POST
9.4 多重鑒權選擇
9.5 SSL和CORS(連線到其他伺服器)
9.6 Allow-Origin
9.7 完善訪問控制
9.8 HEAD和OPTIONS
9.9 Chrome和Safari以及CORS
9.10 構造函式與證書
9.11 withCredentials
9.12 CORS和向後兼容方案
9.12.1 CORS和IE9及其更早版本
9.12.2 IE8/IE9:總是使用長輪詢
9.12.3 動態處理IE9及其更早版本
9.13 匯總
9.14 未來會有更多一樣
附錄A SSE標準
A.1 W3C候選推薦標準2012.12.11
A.1.1 摘要
A.1.2 本文檔的狀態
A.1.3 目錄
A.1.4 引言
A.1.5 一致性要求
A.1.6 術語
A.1.7 EventSource接口
A.1.8 處理模型
A.1.9 解析事件流
A.1.10 解釋事件流
A.1.11 注意事項
A.1.12 連線推送和其他特性
A.1.13 垃圾回收
A.1.14 IANA須知
A.1.15 參考文獻
A.1.16 致謝
附錄B 重構:JavaScript全局變數、對象和閉包
B.1 示例
B.2 問題是……
B.3 JavaScript對象和構造函式
B.4 用對象的代碼
B.5 JavaScript閉包
附錄C PHP
C.1 PHP中的類
C.2 隨機函式
C.3 超全局變數
C.4 數據處理
C.5 密碼
C.6 休眠
第1章 SSE及其他
1.1 HTML5
1.2 數據推送
1.3 數據推送的其他名稱
1.4 可能會用到SSE的套用
1.5 和WebSocket的對比
1.6 什麼時候數據推送是錯誤的選擇
1.7 決策、決策還是決策
1.8 帶我看代碼吧
第2章 玩轉SSE
2.1 最簡單的示例:前端
2.2 使用jQuery嗎
2.3 最簡示例:後端
2.4 基於Node.js的後端
2.4.1 基於Node.js的最簡Web伺服器
2.4.2 用Node.js做推送
2.4.3 在瀏覽器中運行
2.5 華麗退場
第3章 迷人的真實數據推送套用
3.1 問題領域
3.2 後端
3.3 前端
3.4 可復現的真實隨機數據
3.5 精磨時間戳
3.6 控制好隨機性
3.7 為時間的真正流逝留出餘地
3.8 本章內容盤點
第4章 別安於現狀
4.1 數據的更多構成
4.2 重構PHP
4.3 重構JavaScript
4.4 歷史數據存儲
4.5 永久存儲
4.6 現在我們是歷史學家
第5章 走出象牙塔,打造產品級品質
5.1 錯誤處理
5.2 錯誤的JSON
5.3 長連線
5.3.1 伺服器端
5.3.2 客戶端
5.3.3 SSE重試
5.4 添加定期的關閉/重連
5.5 傳送Last-Event-ID
5.6 多路數據ID
5.7 使用Last-Event-ID
5.8 在重連時傳送ID
5.9 不要全局化,考慮本地化
5.10 阻止快取
5.11 阻止死亡
5.12 精簡的簡單辦法
5.13 本章回顧
第6章 向後兼容:其他數據推送策略
6.1 瀏覽器戰爭
6.2 什麼是輪詢
6.3 怎樣做長輪詢
6.4 給我看些代碼
6.5 最佳化長輪詢
6.6 如果JavaScript被禁用怎么辦
6.7 將長輪詢移植到我們的外匯交易套用
6.7.1 連線
6.7.2 長輪詢和長連線
6.7.3 長輪詢和連線錯誤
6.7.4 伺服器端
6.7.5 處理數據
6.7.6 接起來
6.7.7 IE8及更早版本
6.7.8 IE7及其更早版本
6.8 蜿蜒曲折的輪詢
第7章 向後兼容:另闢蹊徑
7.1 共性
7.2 XHR
7.3 iframe
7.4 將XHR/iframe移植到外匯交易套用
7.4.1 後端的XHR
7.4.2 前端的XHR
7.4.3 前端的iframe
7.4.4 接通XHR
7.4.5 接通iframe
7.5 感謝記憶體
7.6 把襁褓中的外匯交易套用放到床上
第8章 關於SSE的其他標準
8.1 請求頭
8.2 事件
8.3 多行數據
8.4 訊息中的空白
8.5 又見請求頭
8.6 這就是全部內容嗎
第9章 認證授權:誰在敲門
9.1 Cookie
9.2 認證授權(使用Apache伺服器)
9.3 帶有SSE的HTTP POST
9.4 多重鑒權選擇
9.5 SSL和CORS(連線到其他伺服器)
9.6 Allow-Origin
9.7 完善訪問控制
9.8 HEAD和OPTIONS
9.9 Chrome和Safari以及CORS
9.10 構造函式與證書
9.11 withCredentials
9.12 CORS和向後兼容方案
9.12.1 CORS和IE9及其更早版本
9.12.2 IE8/IE9:總是使用長輪詢
9.12.3 動態處理IE9及其更早版本
9.13 匯總
9.14 未來會有更多一樣
附錄A SSE標準
A.1 W3C候選推薦標準2012.12.11
A.1.1 摘要
A.1.2 本文檔的狀態
A.1.3 目錄
A.1.4 引言
A.1.5 一致性要求
A.1.6 術語
A.1.7 EventSource接口
A.1.8 處理模型
A.1.9 解析事件流
A.1.10 解釋事件流
A.1.11 注意事項
A.1.12 連線推送和其他特性
A.1.13 垃圾回收
A.1.14 IANA須知
A.1.15 參考文獻
A.1.16 致謝
附錄B 重構:JavaScript全局變數、對象和閉包
B.1 示例
B.2 問題是……
B.3 JavaScript對象和構造函式
B.4 用對象的代碼
B.5 JavaScript閉包
附錄C PHP
C.1 PHP中的類
C.2 隨機函式
C.3 超全局變數
C.4 數據處理
C.5 密碼
C.6 休眠