我正在处理单页应用程序。我第一次构建正确的单页应用程序并遇到了一些问题。
每个页面都有一组可以触发的异步操作。这些操作最多可能需要 30 秒。
用户很可能会更改页面,导致异步操作在完成时失败。
每次页面更改时都会重新呈现页面 HTML,因此由于缺少 DOM 元素和/或其他资源/变量而导致操作失败。变量和其他资源也可能由于状态的变化而变化。
您通常如何处理此类问题?
我相信取消正在进行的请求几乎是不可能的,除非它被分成检查点,在继续之前进行检查。
我想一些选择是:
以
事件页面
检查结束每个函数。这必须在与每个资源交互之前在检查点完成,以防止不希望的行为。捕获异常并让它们静静地失败
有什么想法吗? :)
最佳答案
使用事件?当您想要取消请求时发出一个事件,并让请求监听该事件/准备好优雅地处理它的停止。
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');
抱歉,代码不是很干净,但你明白了吗?
关于javascript - JS/HTML - 单页应用程序 - 取消异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650670/