From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../objets_globaux/arraybuffer/transfer/index.html | 100 --------------------- 1 file changed, 100 deletions(-) delete mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html (limited to 'files/fr/web/javascript/reference/objets_globaux/arraybuffer') diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html deleted file mode 100644 index 0d13e6aa38..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: ArrayBuffer.transfer() -slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/transfer -tags: - - ArrayBuffer - - Experimental - - JavaScript - - Méthode - - Reference - - TypedArrays - - polyfill -translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer ---- -
{{JSRef}}{{SeeCompatTable}}
- -

La méthode statique ArrayBuffer.transfer() renvoie un nouvel objet ArrayBuffer dont le contenu a été transféré depuis les données d'ancienBuffer et qui est soit tronqué soit complété avec des zéros pour que la longueur du nouvel objet soit égale à nouvelleLongueur. Si nouvelleLongueur vaut undefined, on utilisera la propriété byteLength de l'ancienBuffer. Cette opération fait que ancienBuffer sera dans un état détaché.

- -

Syntaxe

- -
ArrayBuffer.transfer(ancienBuffer [, nouvelleLongueur]);
- -

Paramètres

- -
-
ancienBuffer
-
Un objet {{jsxref("ArrayBuffer")}} à partir duquel on souhaite transférer des données.
-
nouvelleLongueur
-
La longueur, exprimée en octets, du nouvel objet ArrayBuffer.
-
- -

Valeur de retour

- -

Un nouvel objet ArrayBuffer.

- -

Description

- -

La méthode ArrayBuffer.transfer() permet d'agrandir et de détacher des objets ArrayBuffer. Le fait de pouvoir agrandir un ArrayBuffer sans effectuer de copie permet d'être beaucoup plus efficace sur les grands buffers (comme pour realloc). Le fait de pouvoir détacher un ArrayBuffer permet au développeur d'avoir un contrôle explicite sur la mémoire sous-jacente et sa libération. Cela permet d'éviter d'avoir à libérer toutes les références et d'attendre le travail du ramasse-miettes.

- -

Exemples

- -
var buf1 = new ArrayBuffer(40);
-new Int32Array(buf1)[0] = 42;
-
-var buf2 = ArrayBuffer.transfer(buf1, 80);
-buf1.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 40)
-buf2.byteLength; // 80
-new Int32Array(buf2)[0]; // 42
-
-var buf3 = ArrayBuffer.transfer(buf2, 0);
-buf2.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 80)
-buf3.byteLength; // 0
-
- -

Prothèse d'émulation (polyfill)

- -

Ce fragment de code permet d'obtenir la plupart des fonctionnalités de transfer() dans un environnement qui ne le prend pas en charge nativement. Attention, cela ne correspond pas exactement à l'API mais permet de transférer des données d'un ArrayBuffer vers un autre.

- -
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;
-    };
-}
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
Proposition pour ArrayBuffer.prototype.transferBrouillonBrouillon de niveau 2
- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.ArrayBuffer.transfer")}}

- -

Voir aussi

- - -- cgit v1.2.3-54-g00ecf