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