Nouveau constructeur Blob dans IE10
IE10 dans Windows 8 Release Preview prend en charge un constructeur Blob
. Nous avons écrit à propos de et mis en avant la prise en charge dans IE10 d'une interface BlobBuilder
, interface en cours de progression dans l'ébauche de travail du W3C sur File API: Writer. Cette interface permet aux développeurs d'utiliser des fichiers sur le PC client. Récemment, le groupe de travail du W3C a déconseillé l'interface BlobBuilder
en faveur d'un nouveau constructeur Blob
. Ce billet explique les différences entre les deux.
Comparaison du constructeur Blob et de l'interface BlobBuilder
Le constructeur Blob
et l'interface BlobBuilder
permettent tous les deux aux développeurs Web de créer des fichiers sur le client. La différence réside dans la syntaxe. Tandis que BlobBuilder
requiert que chaque portion du blob soit ajoutée au cours d'un appel séparé à la méthode d'ajout, le constructeur Blob
peut prendre en compte un tableau d'arguments. Voici comment créer un fichier texte simple à l'aide de l'interface BlobBuilder
et du constructeur Blob
:
// using the Blob constructor
var textBlob1 = new Blob(["Hello", " world!"], { type: "text/plain", endings: "transparent" });
// using the MSBlobBuilder interface
var bb = new MSBlobBuilder();
bb.append("Hello");
bb.append(" world!");
var textBlob2 = bb.getBlob("text/plain");
Le constructeur Blob
prend en compte deux arguments, le tableau de contenu à placer dans le blob et un objet de dictionnaire facultatif pouvant inclure deux membres, type
et endings
. Le tableau de contenu du blob peut contenir des objets blob, des chaînes de texte ou des mémoires tampons de tableaux.
Les versions récentes de Firefox et de Chrome prennent également en charge le constructeur Blob
. IE10 prend toujours en charge l'interface MSBlobBuilder
préfixée en plus du nouveau constructeur Blob
. Actuellement, Firefox et Chrome prennent également en charge leur interface BlobBuilder
préfixée.
Détection du constructeur Blob
Comme avec toutes les nouvelles fonctionnalités, nous recommandons l'utilisation de la détection des fonctionnalités pour déterminer si le constructeur Blob
est disponible dans le navigateur sur lequel votre code s'exécute. Vous pouvez utiliser quelque chose de similaire à ceci :
if (typeof Blob !== "undefined") {
// use the Blob constructor
} elseif (window.MSBlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder) {
// use the supported vendor-prefixed BlobBuilder
} else {
// neither Blob constructor nor BlobBuilder is supported
}
Si vous exécutez la démonstration de test BlobBuilder
avec la console des outils de développement F12 ouverte, elle indiquera si les objets blob sont créés via le constructeur Blob
ou via BlobBuilder
.
L'ajout du constructeur Blob
dans IE10 vous permet d'écrire du code normalisé qui fonctionne sur tous les navigateurs.
—Sharon Newman, Chef de projet, Internet Explorer