Movatterモバイル変換


[0]ホーム

URL:


  1. WebAssembly
  2. Reference
  3. WebAssembly
  4. WebAssembly.Module
  5. WebAssembly.Module() Konstruktor

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

WebAssembly.Module() Konstruktor

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Oktober 2017⁩.

* Some parts of this feature may have varying levels of support.

EinWebAssembly.Module() Konstruktor erstellt ein neues Modulobjekt, das zustandslosen WebAssembly-Code enthält, der bereits vom Browser kompiliert wurde und effizientmit Workern geteilt und mehrfach instanziiert werden kann.

DieWebAssembly.Module() Konstruktorfunktion kann aufgerufen werden, um den gegebenen WebAssembly-Binärcode synchron zu kompilieren. Der primäre Weg, um einModule zu erhalten, ist jedoch durch eine asynchrone Kompilierungsfunktion wieWebAssembly.compile().

Warnung:Da die Kompilierung großer Module aufwendig sein kann, sollten Entwickler denModule() Konstruktor nur dann verwenden, wenn eine synchrone Kompilierung absolut notwendig ist; die asynchrone MethodeWebAssembly.compileStreaming() sollte in allen anderen Fällen verwendet werden.

Hinweis:Webseiten, die eine strikteContent Security Policy (CSP) haben, könnten die Kompilierung und Ausführung von WebAssembly-Modulen blockieren. Für weitere Informationen zum Zulassen der Kompilierung und Ausführung von WebAssembly siehe diescript-src CSP.

Syntax

js
new WebAssembly.Module(bufferSource)new WebAssembly.Module(bufferSource, compileOptions)

Parameter

bufferSource

Eintypisiertes Array oderArrayBuffer, das den Binärcode des Wasm-Moduls enthält, das Sie kompilieren möchten.

compileOptionsOptional

Ein Objekt, das Kompilierungsoptionen enthält. Eigenschaften können beinhalten:

builtinsOptional

Ein Array von Zeichenfolgen, das die Verwendung vonJavaScript 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.

importedStringConstantsOptional

Eine Zeichenfolge, die einen Namespace fürimportierte globale Zeichenfolgenkonstanten angibt. Diese Eigenschaft muss angegeben werden, wenn Sie importierte globale Zeichenfolgenkonstanten im Wasm-Modul verwenden möchten.

Ausnahmen

  • Wenn der Parameter nicht den richtigen Typ oder die richtige Struktur hat, wird einTypeError ausgelöst.
  • Wenn die Kompilierung fehlschlägt, lehnt der Konstruktor mit einemWebAssembly.CompileError ab.
  • Einige Browser können einenRangeError auslösen, da sie die Kompilierung und Instanziierung von Wasm mit großen Puffern im UI-Thread verbieten.

Beispiele

Synchrones Kompilieren eines WebAssembly-Moduls

js
const importObject = {  my_namespace: {    imported_func(arg) {      console.log(arg);    },  },};function createWasmModule(bytes) {  return new WebAssembly.Module(bytes);}fetch("simple.wasm")  .then((response) => response.arrayBuffer())  .then((bytes) => {    const mod = createWasmModule(bytes);    WebAssembly.instantiate(mod, importObject).then((result) =>      result.exports.exported_func(),    );  });

Aktivierung von JavaScript-Builtins und globalen Zeichenfolgenimporten

Dieses Beispiel ermöglicht JavaScript-String-Builtins und importierte globale Zeichenfolgenkonstanten, wenn ein Wasm-Modul über denModule()-Konstruktor kompiliert wird, welches dann mitinstantiate() instanziiert wird. Anschließend wird die exportierte Funktionmain() aufgerufen, die"hello world!" auf die Konsole schreibt.Hier live ansehen.

js
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) => {    const module = new WebAssembly.Module(bytes, compileOptions);    WebAssembly.instantiate(module, importObject).then((instance) =>      instance.exports.main(),    );  });

Spezifikationen

Specification
WebAssembly JavaScript Interface
# dom-module-module

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp