我正在开发一个单页应用程序。我第一次构建适当的单页应用程序并陷入困境。
每个页面都有一组可以触发的异步操作。这些行动最多可能需要30秒。
用户可能会更改页面,导致异步操作在完成时失败。
每次页面更改时都会重新呈现页面HTML,因此由于缺少DOM元素和/或其他资源/变量而导致操作失败。此外,变量和其他资源可能会因状态的变化而发生变化。
你如何处理这类问题?
我认为取消正在进行的请求几乎是不可能的,除非它在检查点中分开,在继续检查之前进行检查。
我猜有些选择是:
使用active page
检查结束每个功能。在与每个资源交互之前,必须在检查点完成此操作,以防止出现不必要的行为。
抓住例外,让它们无声地失败
有什么想法? :)
答案 0 :(得分:1)
使用活动?当您想要取消请求时发出一个事件,并让请求监听事件/准备好优雅地处理它。
function Potato {
this.running = true;
}
Potato.prototype.stop = function () {
this.running = false;
}
Potato.prototype.dostuff = function () {
var things = [1, 2, 3];
Object.keys(things).forEach(function(k) {
if (!this.running) {
break;
}
console.log(k);
});
}
var potato = new Potato;
potato.on('stop', potato.stop);
this.emit('stop');
对不起,不是完全干净的代码,但你明白了吗?
答案 1 :(得分:0)