web-dev-qa-db-fra.com

Accéder au DOM dans WebAssembly

J'ai récemment commencé à utiliser WebAssembly pour certains de mes projets. Je fais cela parce que j'ai entendu dire que Wasm est plus rapide que javaScript.
Quand j'ai commencé mon premier projet Wasm, j'ai réalisé que je ne savais pas comment manipuler le DOM en C++.
Existe-t-il un moyen de le faire en utilisant Wasm?

12
user12658460

Malheureusement, le DOM n'est accessible que dans le fil JavaScript principal du navigateur. Les modules Service Workers, Web Workers et Web Assembly n'auraient pas accès au DOM. La manipulation la plus proche que vous obtiendrez de WASM est de manipuler des objets d'état qui sont passés et rendus par le thread principal avec des composants d'interface utilisateur basés sur l'état comme Preact /React.

La sérialisation JSON est le plus souvent utilisée pour passer l'état avec postMessage() ou Broadcast Channels . Le bitpacking ou les objets binaires peuvent être utilisés avec Transferrable ArrayBuffers pour des messages plus performants qui évitent la surcharge de sérialisation/désérialisation JSON.

1
AnthumChris