1

Nous utilisons AWS S3 SDK pour télécharger des fichiers du navigateur vers des compartiments S3. Comme la quantité et la taille des fichiers peuvent être énormes et avoir un impact sur le rendu et les interactions de l'interface utilisateur, nous avons décidé d'insérer le processus de téléchargement dans un thread Web Worker. De cette façon, l'utilisateur est libre de naviguer et d'interagir sur notre application d'une seule page.Comment polyfiler DOMParser sur Web Worker à utiliser par le téléchargement AWS S3 SDK?

Lorsque nous téléchargeons un petit fichier, tout fonctionne bien. Le problème est lorsque SDK S3 essaie de télécharger un gros fichier. Il divise le fichier en plusieurs morceaux et télécharge chaque morceau individuellement. Le serveur s3 renvoie une réponse XML et le SDK S3 tente de l'analyser à l'aide de la classe DOMParser, qui n'est pas définie dans la portée Web Worker.

Est-il possible de la DOMParser polyfilled afin de faire S3 SKD effectuer le téléchargement sur le Web Worker?

Répondre

0

Répondre à ma sur la question:

J'ai pu Polyfill DOMParser Travailleuse web en utilisant jsdom et browserify

jsdom simule un environnement de fenêtre et faisceaux browserify jsdom à exécuter sur le navigateur (jsdom était destiné à courir sur nodejs)

Cela a plutôt bien fonctionné.

0

en raison d'une question de versionnage jsdom n'a pas fonctionné pour moi. Mais j'ai été capable de polyfiler DOMParser pour aws sdk en utilisant le code suivant.

var DOMParser = require('xmldom').DOMParser; 
window.DOMParser = DOMParser; 

Ran browserify et créé domparser.js

browserify main.js -o domparser.js 

ensuite importées domparser.js avant aws importation sdk

importScripts('domparser.js'); 
importScripts('https://sdk.amazonaws.com/js/aws-sdk-2.176.0.js');