WebAssembly.Module
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017.
* Some parts of this feature may have varying levels of support.
Ein WebAssembly.Module
Objekt enthält zustandslosen WebAssembly-Code, der bereits vom Browser kompiliert wurde — dieser kann effizient mit Web-Workern geteilt werden und mehrfach instanziiert werden.
Hinweis:
Das WebAssembly.Module
Objekt ist nicht verwandt mit dem Module
Objekt, das in Emscripten genutzt wird.
Konstruktor
WebAssembly.Module()
-
Erstellt ein neues
Module
Objekt.
Statische Methoden
WebAssembly.Module.customSections()
-
Bei Übergabe eines
Module
und eines Strings wird eine Kopie aller benutzerdefinierten Abschnitte im Modul mit dem gegebenen Stringnamen zurückgegeben. WebAssembly.Module.exports()
-
Bei Übergabe eines
Module
wird ein Array mit Beschreibungen aller deklarierten Exporte zurückgegeben. WebAssembly.Module.imports()
-
Bei Übergabe eines
Module
wird ein Array mit Beschreibungen aller deklarierten Importe zurückgegeben.
Beispiele
Senden eines kompilierten Moduls an einen Worker
Im folgenden Beispiel wird der geladene simple.wasm
Byte-Code mit der Methode WebAssembly.compileStreaming()
kompiliert und das resultierende Module
-Objekt an einen Worker unter Verwendung von postMessage()
gesendet.
Siehe den index-compile.html
Quellcode oder sehen Sie es live an.
const worker = new Worker("wasm_worker.js");
WebAssembly.compileStreaming(fetch("simple.wasm")).then((mod) =>
worker.postMessage(mod),
);
Die Worker-Funktion wasm_worker.js
definiert ein Importobjekt für die Nutzung durch das Modul. Die Funktion richtet dann einen Ereignishandler ein, um das Modul vom Haupt-Thread zu empfangen. Wenn das Modul empfangen wird, erstellen wir eine Instanz daraus mit der Methode WebAssembly.instantiate()
und rufen eine exportierte Funktion daraus auf.
const importObject = {
my_namespace: {
imported_func(arg) {
console.log(arg);
},
},
};
onmessage = (e) => {
console.log("module received from main thread");
const mod = e.data;
WebAssembly.instantiate(mod, importObject).then((instance) => {
instance.exports.exported_func();
});
};
Spezifikationen
Specification |
---|
WebAssembly JavaScript Interface # modules |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Module | ||||||||||||||
Module() constructor | ||||||||||||||
compileOptions parameter | ||||||||||||||
customSections() static method | ||||||||||||||
exports() static method | ||||||||||||||
imports() static method |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
Siehe auch
- WebAssembly Übersichtsseite
- WebAssembly Konzepte
- Verwendung der WebAssembly-JavaScript-API