Javascript Vue.js:报告繁重操作的进度
有没有办法在Vue.js中向用户报告繁重的javascript操作的进度 我有下一个代码:Javascript Vue.js:报告繁重操作的进度,javascript,vuejs2,Javascript,Vuejs2,有没有办法在Vue.js中向用户报告繁重的javascript操作的进度 我有下一个代码: <p>{{currentProgress}}</p> ... data: function() { return { isLoading : false, currentProgress: "", } }, created: function() { globalLoading.subscribeOnChange((rec
<p>{{currentProgress}}</p>
...
data: function() {
return {
isLoading : false,
currentProgress: "",
}
},
created: function() {
globalLoading.subscribeOnChange((receivedLoading, progress) => {
console.log("----> ", receivedLoading, progress);
this.isLoading = receivedLoading;
this.currentProgress = progress;
this.$forceUpdate();
});
},
我知道如果我使用
setInterval
而不是循环,它会工作,但我需要尽快完成繁重的操作-我不想将操作分割成块将繁重的操作移动到webworker并在主线程上报告进度。@Nit现在我觉得自己真的很愚蠢。当然,我需要webworker,我不知道js有这样的功能。我已经写了一篇,它似乎在报告,但不幸的是很少。如果我在屏幕上单击,则会更新
get中的数字。有什么线索吗?@n组件数据中DevTools中的数字现在随着expected@Nit忘了最后一句话吧,我的坏朋友。我认为它有效。我也在给postMessage打电话often@Nit谢谢我最近才开始使用JS,这是一个全新的世界。我想我必须打破逻辑。我找到了一个使用yield的简洁方法,但是对于这样一个简单的任务来说,它仍然有点太复杂了。我明天会试试。不管怎样,谢谢,你帮了大忙
methods: {
testClick: function() {
globalLoading.start("test");
for (var i = 0; i < 1000000; i++) {
console.log("!");
globalLoading.updateProgress(i);
i++;
}
}
},