官术网_书友最值得收藏!

  • WebAssembly實戰
  • (加拿大)C.杰勒德·加倫特
  • 1685字
  • 2021-05-12 10:20:17

關于本書

本書旨在讓你了解什么是WebAssembly、它的工作原理,以及用它能夠做什么、不能做什么。你將了解如何根據需要創建WebAssembly模塊。本書將從簡單示例開始,然后逐步深入高級主題,如動態鏈接、并行處理以及調試。

目標讀者

本書的目標讀者是對C或C++、JavaScript和HTML有基本理解的開發者。盡管互聯網上有在線的WebAssembly資源,但其中一些已經過時,而且通常并未深入細節或涉及高級主題。本書將以易于學習的形式呈現各種信息,初學者和專家開發者都可以從中受益,從而創建WebAssembly模塊并與之交互。

內容結構

本書共有13章,分為4個部分。

第一部分解釋了WebAssembly是什么及其工作原理。這一部分也介紹了Emscripten工具包,全書都將用其來創建WebAssembly模塊。

● 第1章討論了WebAssembly是什么、它能解決什么問題,以及它的工作原理,解釋了WebAssembly的安全性來源、可用于創建WebAssembly模塊的語言,以及使用這些模塊的場合。

● 第2章闡釋了WebAssembly模塊的組織結構,以及模塊每一部分的職責。

● 第3章介紹了Emscripten工具包,講解了創建WebAssembly模塊時可用的不同輸出選項,還介紹了WebAssembly JavaScript API。

第二部分帶領你創建一個WebAssembly模塊并在Web瀏覽器中與之交互。

● 第4章講解了如何調整已有的C或C++代碼庫,使其也可以編譯為WebAssembly模塊。你還將學習為網頁編寫JavaScript代碼,從而與這個模塊交互。

● 第5章講解了如何調整第4章中創建的代碼,使得這個WebAssembly模塊可以調用網頁的JavaScript代碼。

● 第6章帶領你修改WebAssembly模塊,讓它可以兼容從JavaScript代碼傳入的函數指針。這允許JavaScript代碼按需指定函數,并使用JavaScript promise。

第三部分介紹了幾個高級主題,如動態鏈接、并行處理,以及如何在非Web瀏覽器環境中操作WebAssembly模塊。

● 第7章介紹了動態鏈接的基礎知識。兩個或多個WebAssembly模塊可以在運行時通過動態鏈接合而為一。

● 第8章擴展了第7章所學,介紹如何創建同一個WebAssembly模塊的多個實例,并將每個實例按需動態鏈接到另一個WebAssembly模塊。

● 第9章講解了Web worker和pthread。在這一章中,你可以學到如何使用Web worker在瀏覽器的一個后臺線程中按需預取WebAssembly模塊,以及如何在WebAssembly模塊中用pthread線程執行并行處理。

● 第10章展示了WebAssembly并不局限于Web瀏覽器。你將學習如何在Node.js中使用自己的若干WebAssembly模塊。

第四部分深入探討了調試和測試。

● 第11章通過構建一個卡牌匹配游戲,講解了WebAssembly文本格式。

● 第12章擴展了這個卡牌匹配游戲,以展示調試WebAssembly模塊時可用的各種選項。

● 第13章講解了如何為自己的模塊編寫集成測試。

每一章都建立在前面章節的內容之上,因此最好按順序閱讀。開發者應該依次閱讀第1~3章,以理解WebAssembly是什么、它的工作原理,以及如何使用Emscripten工具包。附錄A很重要,你可以利用它來正確設置工具,以跟隨本書代碼。本書前兩部分覆蓋了核心概念,其余部分(高級主題和調試主題)可以根據需要閱讀。

關于代碼

本書包含很多源代碼示例,有編號列表形式的,也有嵌入正文之中的。為了區分代碼與普通文本,代碼以等寬字體表示。另外,如果代碼是從前面的示例修改而來,則修改部分以黑體表示。

有時本書展示的代碼會換行和縮進以適應頁面空間。極少數情況下,如果仍然沒有足夠的空間,那么會使用續行符(?)。

可以從Manning出版社網站獲得本書源代碼,參見www.manning.com/books/webassembly-in-action。1

1讀者也可到圖靈社區本書中文版主頁“隨書下載”處下載書中示例源代碼?!幷咦?/p>

本書論壇

購買本書即可免費訪問Manning出版社維護的一個私有Web論壇,你可以在該論壇上評論本書、提出技術問題,也可以從作者和其他用戶那里獲得幫助。

Manning出版社為所有讀者提供了一個交流場所,以便讀者之間以及讀者和作者之間可以進行有意義的對話。論壇并不能確保作者的參與程度,因為他對論壇的貢獻仍然是自愿性質的(且是無償的)。建議你嘗試向作者詢問一些具有挑戰性的問題,以引起對方的興趣。只要書仍然在版,你就可以在出版社的網站上訪問該論壇和相關討論。2

2讀者也可登錄圖靈社區本書中文版主頁,提交反饋意見和勘誤?!幷咦?/p>

其他在線資源

如需更多幫助,可訪問以下網站和社區。

● Emscripten官網為許多任務提供了大量文檔。

● Emscripten社區非?;钴S,發布頻繁。如果發現了Emscripten本身的問題,你可以查看是否已經有人提交了bug報告,或者了解如何解決你所遇到的問題。

● Stack Overflow也是一個很棒的網站,你可以在這里提問或幫助他人。

● 本書中文版網址鏈接請到圖靈社區本書頁面查看。

更多信息

掃描下方二維碼,即可獲取電子書相關信息及讀者群通道入口。

主站蜘蛛池模板: 清河县| 林口县| 溧水县| 元阳县| 漳平市| 汝南县| 榆中县| 鄂温| 手机| 昭苏县| 通渭县| 龙陵县| 南充市| 炎陵县| 项城市| 蒙阴县| 宁津县| 成安县| 鄯善县| 钦州市| 永州市| 遂宁市| 枝江市| 绵竹市| 从化市| 嵊泗县| 南宫市| 桃江县| 宁阳县| 铜山县| 中江县| 翁牛特旗| 镇沅| 林州市| 东乡族自治县| 高密市| 周至县| 高邮市| 阿拉尔市| 莱芜市| 南昌县|