WebAssembly实例化技术疑问:隐式执行与HTML嵌入入口点
WebAssembly 相关问题解答
1. JavaScript中实例化WebAssembly模块时的自动执行逻辑
在JavaScript中实例化WebAssembly模块时,默认不会自动执行任何函数。WebAssembly模块本质上就是一个代码库,所有业务逻辑都需要手动调用其导出的函数才能触发,不存在隐式运行的入口类函数。
唯一的例外是:如果编写WebAssembly代码时,特意将初始化逻辑放到了可选的start段中,那么实例化模块时这段代码会自动执行。不过绝大多数主流工具链(比如Emscripten)默认不会生成这个start段,需要开发者手动配置开启。
2. 未来WebAssembly直接嵌入HTML的入口点猜想
如果未来WebAssembly支持直接嵌入HTML,目前的相关提案给出的方向是:
- 大概率会采用约定导出的
main函数作为默认入口点,和多数编程语言的入口逻辑对齐; - 也可能延续现有
start段的机制,自动执行标记的初始化逻辑; - 或者支持在HTML的嵌入标签里显式指定入口函数名,比如类似
<wasm src="app.wasm" entry="initApp"></wasm>的写法。
不过最终的标准尚未敲定,但核心逻辑会和ES模块的入口设计对齐——要么是约定俗成的函数名,要么是显式指定的入口,避免隐式执行带来的不可控性。
内容的提问来源于stack exchange,提问作者Waleed Dahshan
相关产品推荐
相关产品推荐

