《WebAssembly實戰》資源連結清單

張海豔發表於2021-04-28

為方便讀者查詢,本文彙總了《WebAssembly實戰》一書中用到的部分網路資源連結。連結內容可能隨時間變化,請讀者知悉。

第 1 章

1.6節

WebAssembly 官方網站:https://WebaAssembly.org/docs/security。

第 3 章

3.4節

Emscripten網站https://emscripten.org/docs/optimizing/Optimizing-Code.html上給出了的幾個優化標記。

3.5.2節

以下文章更詳細地解釋了為什麼建議將script標籤放在body標籤的結尾處:Ilya Grigorik, “Adding Interactivity with JavaScript,” Google Developers,http://mng.bz/xld7。

3.6.2節

包括Edge、Firefox、Chrome、Safari 和Opera 等多數當代桌面和移動瀏覽器,支援WebAssembly。可以在以下網站檢視詳細列表:https://caniuse.com/#search=WebAssembly。

MDN(正式名為Mozilla 開發者網路,Mozilla developer network) Web Docs 上面有一個關於函式instantiateStreaming 的文件,並且其中在頁面最後包含了最新的瀏覽器相容性列表:http://mng.bz/ZeoN。

第 4 章

4.1.1節

有些C標頭檔案已經過時被棄用,或者C++中已經不再支援。stdlib.h就是一個例子。現在應該使用cstdlib,而不是stdlib.h。要想得到完整的標頭檔案變化列表,可以訪問:https://en.cppreference.com/w/cpp/header。

4.1.3節

如果想要熟悉HTML基礎,W3schools 官網中有很好的教程:www.w3schools.com/html。

第 5 章

5.3節

以下網站列出了一些開源C++庫:https://en.cppreference.com/w/cpp/links/libs。

第 6 章

6.1.4節

在JavaScript中,匿名函式是定義時不包含名稱的函式。如果想要了解更多資訊,可以參考MDN線上文件頁面:http://mng.bz/7zDV。

第 7 章

7.2節

有關WebAssembly JavaScript API的簡要論述在MDN線上文件中也有很好的概述:http://mng.bz/vln1。

7.2.2節

要想更深入地學習Emscripten檔案系統,可以訪問:https://emscripten.org/docs/api_reference/Filesystem-API.html。

有關dlopen和模式標記的更多資訊,參見開發組基本規範:http://mng.bz/4eDQ。

7.2.3節

可以調整一些設定來控制Emscripten生成的JavaScript程式碼的執行。以下網頁列出了其中一部分:https://emscripten.org/docs/api_reference/module.html。

第 8 章

8.2節

如果需要更多關於構建導航欄的資訊,可以訪問:www.w3schools.com/css/css_navbar.asp。

第 9 章

pthread(也稱為POSIX執行緒,POSIX thread)是POSIX.1c標準定義的一套獨立於程式語言執行模型的API(參見:https://en.wikipedia.org/wiki/POSIX_Threads)。

9.1節

要想知道Web worker可用的API的完整列表,可以訪問MDN線上文件頁面:http://mng.bz/gVBG。

要想了解Emscripten Worker API的更多資訊,可以訪問文件中的這個頁面:http://mng.bz/eD1q。

9.2節

關於Node.js worker執行緒支援的更多資訊,參見:https://nodejs.org/api/worker_threads.html。

9.3.1節

有關vector物件的更多資訊,參見:https://en.cppreference.com/w/cpp/container/vector。

9.3.2節

如果感興趣,可以在以下網頁找到Clang支援的C++標準的更多資訊:https://clang.llvm.org/cxx_status.html。

9.3.5節

關於MessageEvent物件的更多資訊,參見MDN線上文件頁面:http://mng.bz/pyPw。

9.4節

關於WebAssembly執行緒方案的更多資訊,包括可用的各種原子記憶體指令的詳細資訊,參見以下的GitHub頁面:http://mng.bz/O9xa。

要想了解Emscripten對pthread的更多支援,參見:https:// emscripten.org/docs/porting/pthreads.html。

9.4.1節

有關pthread屬性物件的更多資訊,參見:https://linux.die.net/man/3/pthread_attr_init。

9.5節

Pranav Jha和Senthil Padmanabhan合著的文章“WebAssembly at eBay: A Real-World Use Case”中詳細介紹了eBay如何使用WebAssembly,其中結合了Web worker和一個JavaScript庫來改進其條形碼掃描器:http://mng.bz/Ye1a。

第 10 章

要想獲取關於WASI的更多資訊,以下論文提供了很好的講解:Simon Bisson的“Mozilla Extends WebAssembly Beyond the Browser with WASI”,The New Stack, http://mng.bz/E19R。

10.4.1節

如果對學習更多Node.js File System物件感興趣,可以訪問:https://nodejs.org/api/fs.html。

如果想要了解關於File System模組的readFile函式以及可選的第二個引數的更多資訊,可以訪問:http://mng.bz/rPjy。

第 11 章

11.1節

可以在以下網址找到物件型別的記憶體與數字指令列表:http://webassembly.github.io/spec/core/text/instructions.html。

11.1.9節

要想了解有關新變數指令的更多資訊,參見:http://mng.bz/xljX。

Fisher-Yates洗牌演算法:https://gist.github.com/sundeepblue/10501662。

第12章

有關除錯模式的更多資訊,參見Emscripten文件:http://mng.bz/JzdZ。

關於-g標記的更多資訊,參見:http://mng.bz/wlj5。

12.4.4節

關於LinkError的更多資訊,參見MDN線上文件:http://mng.bz/qXjx。

第 13 章

以下網站提供了各種不同型別軟體測試的更多資訊:https://en.wikipedia.org/wiki/Software_testing。

13.1節

如果想要了解更多關於Mocha的資訊,可以訪問:https://mochajs.org。

關於Chai 的可用斷言風格的更多資訊,參見:www.chaijs.com/api。

雖然本章選擇了Chai作為斷言庫與Mocha一起使用,但其實可以使用任何斷言庫。可以在以下網站找到若干可用庫的列表:https://mochajs.org/#assertions。

13.2.3節

本節將要建立的HTML檔案從Mocha的網站上覆制而來,並進行了少量修改。原始檔案參見:https://mochajs.org/#running-mocha-in-the-browser。

13.3節

可以訪問https://github.com/WebAssembly/proposals來獲得WebAssembly功能提案的列表及其當前狀態。

Emscripten文件:https://emscripten.org。

Mozilla開發者網路上的WebAssembly文件很不錯,位於:https://developer.mozilla.org/en-US/docs/WebAssembly。

附錄 A

A.4節

樣例wat2wasm支援輸入文字格式並下載Wasm檔案:https://webassembly.github.io/wabt/demo/wat2wasm。

樣例wasm2wat支援上傳一個Wasm檔案並檢視文字格式:https://webassembly.github.io/wabt/demo/wasm2wat。

對於本書中的示例,我們只需要使用線上樣例wat2wasm,但如果需要,也可以下載工具包原始碼並在本地構造Wasm檔案。克隆和構造工具包的指示參見:https://github.com/WebAssembly/wabt。

A.5節

如果不想使用CDN,則還需要下載jQuery。可以從以下地址下載:https://jquery.com/download。

附錄 D

D.3.2節

Web瀏覽器有一個navigator物件,可以用navigator.onLine方法訪問它來確定瀏覽器是否線上。如果想要了解關於這個方法的更多資訊,可以訪問MDN線上文件頁面:http://mng.bz/yzZe。

相關文章