diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
commit | a065e04d529da1d847b5062a12c46d916408bf32 (patch) | |
tree | fe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/de/web/javascript/reference/global_objects/arraybuffer | |
parent | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff) | |
download | translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2 translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip |
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/de/web/javascript/reference/global_objects/arraybuffer')
-rw-r--r-- | files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html b/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html deleted file mode 100644 index 3004da98bf..0000000000 --- a/files/de/web/javascript/reference/global_objects/arraybuffer/transfer/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: ArrayBuffer.transfer() -slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer -tags: - - ArrayBuffer - - Experimental - - JavaScript - - Method - - Reference - - TypedArrays -translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer ---- -<div>{{JSRef}} {{SeeCompatTable}}</div> - -<p>Die statische <code><strong>ArrayBuffer.transfer()</strong></code> Funktion gibt einen neuen <code>ArrayBuffer</code> mit dem Inhalt von <code>oldBuffer</code>. Je nachdem, wei die <code>newByteLength</code> gesetzt ist, werden die Daten abgeschnitten oder erweitert. Wenn <code>newByteLength</code> nicht gesetzt ist, wird die <code>byteLength</code> von <code>oldBuffer</code> benutzt. Diese Operation bringt <code>oldBuffer</code> in einen detached Status.</p> - -<h2 id="Syntax">Syntax</h2> - -<pre class="syntaxbox">ArrayBuffer.transfer(oldBuffer [, newByteLength]);</pre> - -<h3 id="Parameter">Parameter</h3> - -<dl> - <dt><code>oldBuffer</code></dt> - <dd>Ein {{jsxref("ArrayBuffer")}} Objekt von dem die Daten transferiert werden.</dd> - <dt>newByteLength</dt> - <dd>Die Bytelänge des neuen <code>ArrayBuffer</code> Objektes.</dd> -</dl> - -<h3 id="Rückgabewert">Rückgabewert</h3> - -<p>Ein neues <code>ArrayBuffer</code> Objekt.</p> - -<h2 id="Beschreibung">Beschreibung</h2> - -<p>Die <code>ArrayBuffer.transfer()</code> Methode erlaubt es ein <code>ArrayBuffer</code> zu vergrößern und zu detachen. Die Möglichkeit ein <code>ArrayBuffer</code> zu vergrößern ohne es zu kopieren, hat den Vorteil, dass es viel schneller für große Buffer ist (ähnlich wie bei realloc). Die Möglichkeit, dass ein <code>ArrayBuffer</code> detachet wird, gibt dem Entwickler die explizite Kontrolle über das freigeben des internen Speichers. Dieses vermeidet das Entfernen aller Referenzen und das Warten auf die Garbage Collection.</p> - -<h2 id="Beispiele">Beispiele</h2> - -<pre class="brush: js">var buf1 = new ArrayBuffer(40); -new Int32Array(buf1)[0] = 42; - -var buf2 = ArrayBuffer.transfer(buf1, 80); -buf1.byteLength; // 0 but if you use the polyfill then the value is still 40 -buf2.byteLength; // 80 -new Int32Array(buf2)[0]; // 42 - -var buf3 = ArrayBuffer.transfer(buf2, 0); -buf2.byteLength; // 0 but if you use the polyfill then the value is still 80 -buf3.byteLength; // 0 -</pre> - -<h2 id="Polyfill">Polyfill</h2> - -<p>Für Browser, die die Funktion nicht nativ unterstützen, gibt es die Möglichkeit folgenden Quelltext am Anfang eines Skriptes einzufügen, um die Funktion <code>transfer()</code> zu benutzen. Diese Funktion ist nicht exakt die in der API beschriebene, weil Browser, die die Funktion unterstützen, direkten Zugriff auf die C++ Funktion <code>realloc()</code> haben, welche die Länge des Speichers erhöht und nur eine Kopie anlegt, wenn es nötig ist. Im Gegensatz dazu kopiert der folgende Pollyfill alles immer in neuen Speicher. Diese Funktion transferiert die Daten jedoch von einem <code>ArrayBuffer</code> zu einem anderen.</p> - -<pre class="brush: js">if (!ArrayBuffer.transfer) { - ArrayBuffer.transfer = function(source, length) { - if (!(source instanceof ArrayBuffer)) - throw new TypeError('Source must be an instance of ArrayBuffer'); - if (length <= source.byteLength) - return source.slice(0, length); - var sourceView = new Uint8Array(source), - destView = new Uint8Array(new ArrayBuffer(length)); - destView.set(sourceView); - return dest.buffer; - }; -}</pre> - -<h2 id="Spezifikationen">Spezifikationen</h2> - -<p>Ist in keiner aktuellen Spezifikation enthalten, wird aber <a href="https://esdiscuss.org/topic/sept-23-2014-meeting-notes">in der Zukunft für ECMA-262 geplant</a>.</p> - -<h2 id="Browserkompatibilität"><a id="Browser_compatibility" name="Browser_compatibility">Browserkompatibilität</a></h2> - - - -<p>{{Compat("javascript.builtins.ArrayBuffer.transfer")}}</p> - -<h2 id="Siehe_auch">Siehe auch</h2> - -<ul> - <li><a href="/de/docs/Web/JavaScript/Typed_arrays" title="en/JavaScript typed arrays">JavaScript getypte Arrays</a></li> -</ul> |