Résumé
A moins que vous doivent avoir la capacité d'écrire/éditer (en utilisant un ArrayBuffer
), alors Blob
est probablement le meilleur format .
Détail
Cette question m'est venue d'un différents page html5rocks. et j'ai trouvé Commentaires de @Bart van Heukelom pour être utile, donc je voulais les élever à une réponse ici.
J'ai également trouvé des ressources utiles spécifiques à ArrayBuffer
y Blob
des objets. En résumé : malgré l'accent mis sur Blob
être immuable/"données brutes Blob
les objets sont facile à travailler .
Ressources qui comparent / contrastent ArrayBuffer
vs Blob
:
-
Mutabilité
- un
ArrayBuffer
peut être modifié (par exemple, avec un DataView
)
- a
Blob
es immuable
-
Source / Disponibilité en mémoire
- Un ArrayBuffer est dans la mémoire, disponible sur pour la manipulation.
- Un Blob peut se trouver sur le disque, dans la mémoire cache et à d'autres endroits. pas facilement disponible
-
Couche d'accès
-
Convertir
-
Utilisation dans d'autres bibliothèques
-
jsZip
; (new JSZip()).loadAsync(...)
accepte les deux ArrayBuffer
y Blob
: String/Array of bytes/ArrayBuffer/Uint8Array/Buffer/Blob/Promise
-
Comment le protocole gère-t-il ArrayBuffer et Blob ?
- Websocket (alias WS / WSS)
- Utilisez le de webSocket
binaryType
propriété (pouvant avoir les valeurs "arraybuffer" ou "blob") pour "contrôler le type de données binaires reçues sur la connexion WebSocket".
- XmlHttpRequest (alias XHR)
- Utilisez le de xhr
responseType
propriété pour "changer le type de réponse attendu du serveur" (les valeurs valides incluent "arraybuffer", "blob", et d'autres comme "document", "json", et "text")
-
la propriété de la réponse contiendra le corps de l'entité en fonction de responseType
comme un ArrayBuffer, un Blob, un Document, un JSON ou une chaîne.
Autres documents utiles :
En ArrayBuffer
est utilisé pour représenter un tampon de données binaires brutes générique, de longueur fixe de données binaires brutes. Vous pouvez consulter le site ne peut pas directement manipuler le contenu d'un d'un site ArrayBuffer
Au lieu de cela, vous créez l'un des objets de type tableau ou a DataView
qui représente le tampon dans un format spécifique, et utiliser cela pour lire et écrire le contenu du tampon.
A Blob
représente un objet de type fichier de immuable les données brutes. Blob
représenter des données qui ne sont pas nécessairement dans un format natif de JavaScript natif de JavaScript. Le site File
interface est basé sur Blob
, héritant du blob et l'étend pour prendre en charge les fichiers du système de l'utilisateur.