ArrayBuffer et les vues font partie de la norme ECMA, une partie de JavaScript.
Dans le navigateur, il existe d’autres objets de niveau supérieur, décrits dans File API, en particulier Blob.
Blob consiste en une chaîne de caractères optionnelle type (un type de MIME habituellement), plus blobParts – une séquence d’autres objets Blob , chaînes de caractères et BufferSource.
La syntaxe du constructeur est la suivante:
new Blob(blobParts, options);
blobPartsest un tableau deBlob/BufferSource/String.optionsobjet optionnel:type– le type duBlob, généralement de type MIME, par exemple.image/png,endings– s’il faut transformer la fin de ligne pour rendre leBlobcorrespondent aux nouvelles lignes de l’OS actuel (\r\nou\n)."transparent"Par défaut (ne fait rien), mais peut aussi être"native"(transformer).
Par exemple:
// créer un Blob à partir d'une chaîne
let blob = new Blob(["<html>…</html>"], {type: 'text/html'});
// veuillez noter: le premier argument doit être un tableau [...]
// créer un objet blob à partir d'un tableau typés et de chaînes de caractères
let hello = new Uint8Array([72, 101, 108, 108, 111]); // "Hello" sous forme binaire
let blob = new Blob([hello, ' ', 'world'], {type: 'text/plain'});
Nous pouvons extraire des parties du Blob avec :
blob.slice([byteStart], [byteEnd], [contentType]);
byteStart– l’octet de départ, par défaut 0.byteEnd– le dernier octet (exclusif, par défaut jusqu’à la fin).contentType– Letypedu nouvel objet blob, par défaut le même que la source.
Les arguments sont similaires à array.slice, les nombres négatifs sont également autorisés.
Blob sont immuablesNous ne pouvons pas modifier les données directement dans un Blob, mais nous pouvons découper des parties d’un Blob, créer de nouveaux objets Blob à partir d’eux, les mélanger dans un nouveau Blob et ainsi de suite.
Ce comportement est similaire aux chaînes de caractères JavaScript: nous ne pouvons pas changer un caractère dans une chaîne, mais nous pouvons créer une nouvelle chaîne corrigée.
Blob comme URL
Un Blob peut être facilement utilisé comme URL pour <a>, <img> ou d’autres balises, pour afficher son contenu.