Проверьте ОГРОМНЫЙ XML на стороне браузера, используя JS - PullRequest
0 голосов
/ 28 мая 2018

Мне нужно проверить действительно огромный файл XML (2 ГБ) в браузере (в приложении PWA с использованием веб-работников).Сначала файл должен быть проверен с помощью схемы XSD, а затем преобразован в объекты JSON.

Я только что попытался прочитать файл с помощью FileReader и срезов, я могу прочитать файл, но не могу проверитьэто.

Сначала я попробовал что-то вроде следующего (он работает с небольшими файлами (от КБ до нескольких МБ)):

        xmlDoc = parser.parseFromString(content, "text/xml");            
        if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
            isValid = false;
        }

Затем я использую FileReader, все работает нормально:

    var r = new FileReader();
    var blob = _file.slice(_offset, length + _offset);
    r.onload = readEventHandler;
    r.readAsText(blob);

Но теперь я не знаю, как проверить БОЛЬШОЙ xml, используя эти кусочки.

Существует ли какая-либо библиотека или встроенная JS-функция для ее достижения (желательно использовать vanilla JS))?Есть еще идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Я не думаю, что вы можете проверить XML, который нарезан на основе длины, где он не будет логически заканчиваться или соединяться со следующим.

Вы можете попробовать проверить всю версию XML, используя Web Workers , чтобы посмотреть, поможет ли это.Это создаст отдельный поток от вашего основного процесса.Так что это не будет прерывать ваше взаимодействие с пользователем или другие регулярные операции.

Я не уверен, что ваш вариант использования.Но полагаться на стороне клиента для такой громоздкой работы не всегда надежно, особенно когда клиентское устройство имеет устаревшее аппаратное обеспечение / устаревший браузер с низкой производительностью.Проверка на стороне сервера была бы надежным решением, которое по понятным причинам достигается за счет дополнительных затрат на пропускную способность и нагрузку на стороне сервера.

...