Web工作者 - 密集解析使GUI冻结

时间:2017-03-01 11:32:48

标签: javascript json freeze web-worker

我从Java Servlet中获取一个大的JSON。我必须解析JSON。当我从“JS mainthread”解析JSON时,我的GUI冻结大约50秒然后解析。这对用户来说显然是不可接受的。 因此,我使用WebWorkers在后台执行此任务,但是当我在WebWorker中运行此任务时,我的GUI冻结:(。我不明白为什么......如果有人能够解释我......

我获取了我的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 个答案:

没有答案