Я планирую написать код для локального шифрования файлов в javascript.Для больших файлов и ключей большого размера загрузка ЦП (естественно) довольно высока.В едином проекте сценария это часто приводит к зависанию браузера до тех пор, пока задача не будет завершена.
Чтобы улучшить отзывчивость и позволить пользователям делать другие вещи, в то же время я хочу попробовать сделать сценарий более дружественным кПК пользователя.Процесс шифрования будет считывать файл в виде двоичной строки, а затем шифровать строку кусками (что-то вроде 1 КБ / чанк - требует тестирования).Я хочу попробовать и использовать пользователей на основе HTML5, чтобы сделать все это как можно более инкрементным.Что-то вроде:
- Spawn worker
- Отправка работнику бинарного фрагмента данных
- Работник завершает шифрование, передает новый чанк
- Работник умирает.
Это может также помочь с многоядерными процессорами, так как одновременно работают несколько рабочих.
В любом случае, кто-нибудь задумывался о намеренном замедлении работы сценария с целью уменьшения загрузки процессора?Что-то вроде разделения задачи шифрования работника на отдельные операции и введения задержки между ними.
Интервал обратного вызова таймера каждые 100 мс (пример).
Работник занят?
Да - дождаться другого интервала
Нет - Начать шифрование следующей буквы
Советы / мысли?
У кого-нибудь есть опыт использования работников?Если вы отделяете основной пользовательский интерфейс от интенсивной работы, превращая его в рабочего, увеличивается ли скорость реагирования?