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;
    });
  }
};

0 ответов

Другие вопросы по тегам