HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
View in English Always switch to English
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die statische Methode WebAssembly.compile() kompiliert WebAssembly-Binärcode in ein WebAssembly.Module-Objekt. Diese Funktion ist nützlich, wenn ein Modul kompiliert werden muss, bevor es instanziiert werden kann (andernfalls sollte die Funktion WebAssembly.instantiate() verwendet werden).
WebAssembly.compile()
WebAssembly.Module
WebAssembly.instantiate()
Hinweis: Webseiten, die eine strikte Content Security Policy (CSP) haben, könnten das Kompilieren und Ausführen von WebAssembly-Modulen blockieren. Weitere Informationen zum Zulassen der WebAssembly-Kompilierung und -Ausführung finden Sie unter dem script-src CSP.
WebAssembly.compile(bufferSource) WebAssembly.compile(bufferSource, compileOptions)
bufferSource
Ein typisiertes Array oder ArrayBuffer, das den Binärcode des zu kompilierenden Wasm-Moduls enthält.
ArrayBuffer
compileOptions
Ein Objekt, das Kompilierungsoptionen enthält. Eigenschaften können enthalten:
builtins
Ein Array von einem oder mehreren Zeichenfolgen, das die Verwendung von JavaScript builtins im kompilierten Wasm-Modul ermöglicht. Die Zeichenfolgen definieren die Builtins, die Sie aktivieren möchten. Derzeit ist der einzige verfügbare Wert "js-string", der JavaScript-String-Builtins aktiviert.
"js-string"
importedStringConstants
Eine Zeichenfolge, die einen Namensraum für importierte globale String-Konstanten angibt. Diese Eigenschaft muss angegeben werden, wenn Sie importierte globale String-Konstanten im Wasm-Modul verwenden möchten.
Ein Promise, das sich zu einem WebAssembly.Module-Objekt auflöst und das kompilierte Modul darstellt.
Promise
TypeError
WebAssembly.CompileError
Im folgenden Beispiel wird der geladene einfache Wasm-Bytecode mit der Funktion compile() kompiliert und dann mit postMessage() an einen Worker gesendet.
compile()
const worker = new Worker("wasm_worker.js"); fetch("simple.wasm") .then((response) => response.arrayBuffer()) .then((bytes) => WebAssembly.compile(bytes)) .then((mod) => worker.postMessage(mod));
Hinweis: In den meisten Fällen werden Sie vermutlich WebAssembly.compileStreaming() verwenden wollen, da es effizienter als compile() ist.
WebAssembly.compileStreaming()
Dieses Beispiel aktiviert JavaScript-String-Builtins und importierte globale String-Konstanten, wenn das Wasm-Modul mit compile() kompiliert wird, bevor es mit instantiate() instanziiert und anschließend die exportierte main()-Funktion (die "hello world!" auf die Konsole schreibt) ausgeführt wird. Siehe es live in Aktion.
instantiate()
main()
"hello world!"
const importObject = { // Regular import m: { log: console.log, }, }; const compileOptions = { builtins: ["js-string"], // Enable JavaScript string builtins importedStringConstants: "string_constants", // Enable imported global string constants }; fetch("log-concat.wasm") .then((response) => response.arrayBuffer()) .then((bytes) => WebAssembly.compile(bytes, compileOptions)) .then((module) => WebAssembly.instantiate(module, importObject)) .then((instance) => instance.exports.main());
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.