J'ai récemment commencé à utiliser Web Assembly pour certains de mes projets. Je fais cela parce que j'ai entendu dire que le wasm est plus rapide que le javascript.
WebAssembly est plus rapide que JavaScript, mais uniquement pour certains cas d'utilisation. Avec WebAssembly, votre navigateur doit faire moins de travail pour télécharger et compiler votre code, ce qui accélère le démarrage. Cependant, lorsque les performances d'exécution de WebAssembly ne sont généralement que 2 à 3 fois plus rapides que JavaScript. Voir l'article suivant pour une comparaison très bonne et pratique:
https://hacks.mozilla.org/2018/01/oxidizing-source-maps-with-rust-and-webassembly/
Cependant, WebAssembly n'a pas d'accès direct DOM, donc malgré ses performances supérieures, vous pouvez constater qu'il est plus lent que JavaScript pour votre cas d'utilisation en raison de la surcharge d'E / S supplémentaire.
Pour cette raison, les utilisateurs rencontrent actuellement le plus de succès avec WebAssembly pour les tâches algorithmiques / intensives en calcul.
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 le wasm?
Pour manipuler le DOM, vous devez le faire via l'hôte JavaScript - votre module WebAssembly doit envoyer des messages à JavaScript pour lui demander de manipuler le DOM en son nom.
Comme il s'agit d'un défi assez courant, il existe divers projets communautaires qui ont des solutions au problème. Comme vous utilisez C ++, celui-ci pourrait vous intéresser:
https://github.com/mbasso/asm-dom
À l'avenir, cela deviendra plus facile, des propositions telles que les types d'interface facilitent l'interopérabilité avec l'environnement hôte et pourraient permettre aux API Web d'être appelées directement à partir de WebAssembly.