Blazor Wasm DOM访问和引用类型

Blazor Wasm DOM访问和引用类型,blazor,webassembly,blazor-webassembly,Blazor,Webassembly,Blazor Webassembly,我一直在密切关注webassembly的路线图,特别是调用JS互操作的性能影响。作为其中的一部分,我们将能够对Wasm中的表进行基本操作。第四阶段已经批准。Firefox和Chrome正致力于实施这一提议。基于这个答案。并引用铬的描述 允许WebAssembly模块保存对JS/DOM对象的引用,将它们作为参数传递,将它们存储在局部变量和全局变量中,并将它们存储在WebAssembly.Table对象中 这是否允许从wasm访问DOM?或者需要进一步的实现?是否会提高/匹配访问DOM的JS性能?这

我一直在密切关注webassembly的路线图,特别是调用JS互操作的性能影响。作为其中的一部分,我们将能够对Wasm中的表进行基本操作。第四阶段已经批准。Firefox和Chrome正致力于实施这一提议。基于这个答案。并引用铬的描述

允许WebAssembly模块保存对JS/DOM对象的引用,将它们作为参数传递,将它们存储在局部变量和全局变量中,并将它们存储在WebAssembly.Table对象中

这是否允许从wasm访问DOM?或者需要进一步的实现?是否会提高/匹配访问DOM的JS性能?这是否允许在wasm中有一个虚拟DOM,并且只在真实DOM中进行必要的更改

添加Andreas Rossberg的回应

然而,我们从GC提案中分离出来的引用类型的新提案试图给出一个更微妙的答案。它引入了引用类型,但没有在Wasm本身中分配任何内容的功能。在主机引用被垃圾收集的嵌入中,仍然需要Wasm实现来理解GC。但在其他嵌入中,不需要这样做


编辑完整性

模块可以在Wasm中存储对DOM对象的引用(或相应主机环境提供的任何引用),但要访问它们,它需要导入相应的功能。这不会改变。Wasm是一个虚拟指令集,而不是API。而且它不是特定于Web的


当然,您现在可以在Wasm中实现一个丰富的库,例如影子DOM或虚拟DOM,它在Wasm中完成大部分工作,并且只在需要时调用真正的DOM。

您应该就github repo提出一个问题。这对StackOverflow来说有点太宽泛了是的,我在Blazor回购中提出了一个新的建议