Есть ли способ создать из элементов DOM в Web Worker?

Контекст: У меня есть веб-приложение, которое обрабатывает и показывает огромные файлы журнала. Обычно они имеют длину около 100 тыс. Строк, но могут достигать 4 млн. Строк и более. Чтобы иметь возможность прокручивать этот файл журнала (как по инициативе пользователя, так и через JavaScript) и фильтровать строки с достойной производительностью, я создаю элемент DOM для каждой строки, как только данные поступают (в JSON через ajax). Я обнаружил, что это лучше для производительности, чем создание HTML-кода на серверной части. После этого я сохраняю элементы в массиве и показываю только те линии, которые видны.

Для максимум 100 000 строк это занимает всего около нескольких секунд, но все, что больше, занимает до одной минуты для 500 000 строк (не включая загрузку). Я хотел еще больше повысить производительность, поэтому попробовал использовать HTML5 Web Workers. Проблема в том, что я не могу создавать элементы в Web Worker, даже вне DOM. Поэтому я закончил только преобразование json в HTML в Web Workers и отправил результат в основной поток. Там он создается и хранится в массиве. К сожалению, это ухудшило производительность, и теперь это занимает не менее 30 секунд.

Вопрос: Так есть ли какой-нибудь способ, о котором я не знаю, для создания элементов DOM вне дерева DOM в Web Worker? Если нет, то почему? Мне кажется, что это не может создать проблемы параллелизма, поскольку создание элементов может происходить параллельно без проблем.

Ответы на вопрос(9)

Ваш ответ на вопрос