1

Мы используем AWS S3 SDK для загрузки файлов из браузера в ведра S3. Поскольку количество и размер файлов могут быть огромными и влиять на рендеринг и взаимодействие пользовательского интерфейса, мы решили вытащить процесс загрузки в поток веб-рабочего. Таким образом, пользователь может свободно перемещаться и взаимодействовать в нашем одностраничном приложении.Как заполнить DOMParser на веб-сайте, который будет использоваться загрузкой SDS S3 SDK?

Когда мы загружаем небольшие файлы, все работает хорошо. Проблема заключается в том, что S3 SDK пытается загрузить большой файл. Он разбивает файл на несколько кусков и загружает каждый фрагмент индивидуально. Сервер s3 возвращает ответ XML, и S3 SDK пытается проанализировать его с помощью класса DOMParser, который не определен в области Web Worker.

Есть ли способ, которым DOMParser можно полилизовать, чтобы S3 SKD выполнял загрузку на веб-рабочем столе?

ответ

0

Отвечая на мой на вопрос:

Я был в состоянии polyfill DomParser на веб-работника с помощью jsdom и browserify

jsdom имитирует окно окружающей среде, и browserify пучки jsdom будет выполняться в браузере (jsdom был предназначен для run on nodejs)

Это сработало очень хорошо.

0

Из-за некоторой проблемы с версией jsdom не работал для меня. Но я смог полировать DOMParser для aws sdk, используя следующий код.

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

Ран browserify и создал domparser.js

browserify main.js -o domparser.js 

Затем ввезенного domparser.js перед импортом AWS SDK

importScripts('domparser.js'); 
importScripts('https://sdk.amazonaws.com/js/aws-sdk-2.176.0.js'); 
Смежные вопросы