我有一个运行时间很长的模板助手。它依赖于三个单独的集合,并执行大量循环以透视一些数据以生成每日报告。用户可以长时间运行,但我需要给他们反馈,客户端正在忙于计算将呈现给UI的内容。对我来说,问题是使用waitOn挂钩只会使我陷入困境,除非我向模板添加新行(几乎从来没有),否则呈现的回调将不起作用。实际上,我想知道流星队是否意识到了这一点。似乎有一个不错的功能。我有一个表,行和列的数目相同,但是单元格中的值改变了。当JS计算这些单元格运行时,如何向用户显示一些反馈?
最佳答案
流星的方法是使用反应变量:
的HTML
<template name="busy">
{{#if processing}}
spinner
{{else}}
Done, showing results: ...
{{/if}}
</template>
JS
var data = new ReactiveDict();
Template.busy.rendered = function() {
data.set('processing', true);
};
Template.busy.processing = function() {
return data.get('processing');
};
var processing = function() {
...
// Looooong calculations
...
// Or even async
...
data.set('processing', false);
};
关于javascript - meteor 0.8.0+,如何为长时间运行的代码提供“忙碌的微调器”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24598867/