Y a-t-il des restrictions sur la taille de JavaScript Max Blob?
Je suis en train de télécharger un fichier en utilisant l'appel AJAX. J'ai besoin d'utiliser AJAX appel, car je dois faire une requête post avec ce que j'ai besoin d'envoyer des en-têtes de la part du client. En tant que Serveur de l'API n'est pas sous notre contrôle, nous n'avons pas beaucoup d'autre choix que d'utiliser de l'AJAX. Pour afficher le fichier boîte de dialogue enregistrer, je suis la conversion le tableau d'octets à goutte pour Objet l'URL comme indiqué ci-dessous
var oReq = new XMLHttpRequest();
oReq.open("POST","api/operations/zip", true);
oReq.responseType = "arraybuffer";
oReq.onload = function(oEvent) {
var blob=new Blob([oReq.response], {type: 'application/octet-binary'});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myFileName.zip"; link.click();
}
oReq.send(filePaths);
Maintenant, je voudrais savoir est-il une limite sur taille Blob l'on peut avoir en JavaScript autres que le navigateur contrainte de mémoire. comme est-il possible de télécharger de fichier de 4 GO si j'ai autour de 8 GO de RAM.
source d'informationauteur Vikash
Vous devez vous connecter pour publier un commentaire.
Gouttes semblent être limités 500MiB dans google Chrome, et qui sont actuellement stockés dans la mémoire, si une restructuration est en cours:
https://code.google.com/p/chromium/issues/detail?id=375297
De navigateur et d'autres implémentations sont légèrement différentes limites:
https://github.com/eligrey/FileSaver.js/#supported-browsers
L'existant réponse semble en grande partie hors de date.
Chrome (57+ il semble):
Selon Google Chrome, le Stockage Blob de la Conception du Système:
Pour clarifier,
disk_size
est apparemment la taille totale du disque, pas de l'espace disque disponible (probablement pour des raisons de confidentialité, mais semble comme susceptibles de causer des problèmes).Chrome utilise un répertoire appelé
blob_storage
dans le profil google Chrome répertoire pour stocker blob pièces de disque.Je ne suis pas sûr si ou comment certaines autres limites sont imposées si l'espace disque disponible ou de la mémoire vive disponible est inférieur au logiciel de limites. Je vais mettre à jour cette réponse quand je sais plus.
Opéra (44+ ou peut-être plus tôt):
Même que Chrome, car il est basé sur Chrome.
Firefox (53+ ou peut-être plus tôt):
N'a apparemment pas de limite dure. Je suis en mesure de créer Blob est sensiblement plus grande que la "800 MiB" FileSaver.js les revendications. Ne pas utiliser de l'espace disque à l'arrière plus grandes gouttes, donc il va tous en mémoire, peut-être avec le système d'exploitation de la pagination de la mémoire sur le disque. Cela signifie que les blobs plus grande que la mémoire est peut-être possible, bien que probablement avec de mauvaises performances.
Safari (10.1+ ou peut-être plus tôt):
N'a apparemment pas de limite dure. Ne pas utiliser de l'espace disque à l'arrière plus grandes gouttes, donc il va tous en mémoire, peut-être avec le système d'exploitation de la pagination de la mémoire sur le disque. Cela signifie que les blobs plus grande que la mémoire est peut-être possible, bien que probablement avec de mauvaises performances.
De navigateur et d'autres limites seront ajoutés à mesure que j'apprends.