Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2017 browserübergreifend verfügbar.
Der WebAssembly.Memory()-Konstruktor erstellt ein neues Memory-Objekt, dessen buffer-Eigenschaft ein größenveränderbares ArrayBuffer oder SharedArrayBuffer ist, das die Rohbytes des Speichers enthält, auf die eine WebAssembly.Instance zugreift.
Ein Speicherobjekt, das von JavaScript oder in WebAssembly-Code erstellt wurde, wird sowohl von JavaScript als auch von WebAssembly zugänglich und veränderlich sein, sofern der Code das Objekt erstellt hat oder das Objekt erhalten hat.
Sowohl WebAssembly als auch JavaScript können Memory-Objekte erstellen. Wenn Sie auf den in JS erstellten Speicher von Wasm oder umgekehrt zugreifen möchten, können Sie eine Referenz auf den Speicher von einer Seite an die andere übergeben.
Ein Objekt, das die folgenden Mitglieder enthalten kann:
address OptionalEin Zeichenfolgewert, der den Adresstyp des Speichers angibt. Dies kann entweder "i32" oder "i64" sein. Der Standardwert ist "i32". Wenn address auf "i64" gesetzt ist, müssen initial und maximum, falls vorhanden, BigInt-Werte sein.
initialDie anfängliche Größe des WebAssembly-Speichers, in Einheiten von WebAssembly-Seiten.
maximum OptionalDie maximale Größe, auf die der WebAssembly-Speicher wachsen darf, in Einheiten von WebAssembly-Seiten. Wenn vorhanden, fungiert der maximum-Parameter als Hinweis für die Engine, Speicher im Voraus zu reservieren. Die Engine kann diese Reservierungsanfrage jedoch ignorieren oder drosseln. Nicht gemeinsam genutzte WebAssembly-Speicher müssen kein maximum setzen, aber gemeinsam genutzte Speicher müssen es.
shared OptionalEin boolescher Wert, der definiert, ob der Speicher ein gemeinsam genutzter Speicher ist oder nicht. Wenn auf true gesetzt, handelt es sich um einen gemeinsam genutzten Speicher. Der Standardwert ist false.
Hinweis: Eine WebAssembly-Seite hat eine konstante Größe von 65.536 Bytes, d.h. 64KiB.
Wird ausgelöst, wenn mindestens eine der folgenden Bedingungen erfüllt ist:
Wird ausgelöst, wenn mindestens eine der folgenden Bedingungen erfüllt ist:
Es gibt zwei Möglichkeiten, ein WebAssembly.Memory-Objekt zu erhalten: Es aus JavaScript zu konstruieren oder es von einem WebAssembly-Modul exportieren zu lassen.
Das folgende Beispiel (siehe memory.html auf GitHub und sehen Sie es sich auch live an) erstellt eine neue WebAssembly-Memory-Instanz mit einer anfänglichen Größe von 10 Seiten (640KiB) und einer maximalen Größe von 100 Seiten (6,4MiB). Das Beispiel lädt und instanziiert den geladenen Memory.wasm-Bytecode mithilfe der Funktion WebAssembly.instantiateStreaming(), während es den oben erstellten Speicher importiert. Anschließend speichert es einige Werte in diesem Speicher, exportiert eine Funktion und verwendet die exportierte Funktion, um diese Werte zu summieren. Die buffer-Eigenschaft des Memory-Objekts wird einen ArrayBuffer zurückgeben.
Standardmäßig sind WebAssembly-Speicher nicht gemeinsam genutzt. Sie können einen gemeinsam genutzten Speicher von JavaScript aus erstellen, indem Sie shared: true im Initialisierungsobjekt des Konstruktors übergeben:
Diese buffer-Eigenschaft des Speichers gibt einen SharedArrayBuffer zurück.
Um einen Speicher mit einem 64-Bit-Adresstyp zu erstellen, übergeben Sie address: "i64". Die Werte für initial und maximum müssen BigInt-Werte sein:
| WebAssembly JavaScript Interface # dom-memory-memory |
Das shared-Attribut ist nur im Threading Proposal für WebAssembly dokumentiert und nicht Teil der offiziellen Spezifikationen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.