Web-работник - Интенсивный разбор заставляет GUI зависать
Я получаю большой JSON из Java-сервлета. Я должен разобрать JSON. Когда я анализирую JSON из моей "основной цепочки JS", мой графический интерфейс останавливается примерно на 50 секунд, а затем анализируется. Это явно неприемлемо для пользователя. Итак, я использую WebWorkers для выполнения этой задачи в фоновом режиме, но когда я запускаю эту задачу в WebWorker, мой графический интерфейс зависает:(. Я не понимаю, почему.. Если кто-то сможет мне объяснить..
Я получаю свой JSON:
MandatService.list(null, null, null, null, null).then(function (res) {
ctrl.controller.worker.postMessage({message: 1, data: res});
}).catch(function (e) {
// Some stuff
}).finally(function() {
// some stuff
});
Я управляю сообщениями моего работника:
ctrl.controller.worker = new Worker('crg-calcul-filter.js');
ctrl.controller.worker.onmessage = function(event) {
if (event.data.message === 0) {
renderUpdate(event.data.data);
} else if (event.data.message === 1) {
$timeout(function() {
ctrl.view.lines = event.data.data;
ctrl.view._.mandatIsLoading = false;
});
}
};