我是骨干新手,我正在尝试通过制作一些示例应用程序来学习它。一个是足球经理游戏。我正在尝试制作一个“匹配”模型,它有一个名为“start()”的函数,理论上它会启动一个计时器,该计时器最多可计数 90。这是我的模型:
var Match = Backbone.Model.extend({
defaults: function(){
return {
name: "Match One",
};
},
start: function() {
console.log("match started");
this.incrementMinute();
},
incrementMinute: function() {
var min = this;
setTimeout(function(){
min.set('minute', ++min.minute);
if(min.minute % 10 === 0)
min.updateStatus();
min.incrementMinute();
}, 3000);
},
updateStatus: function() {
this.set("detail", "Minute is now: "+this.minute);
},
minute: 0,
detail: "Match is about the kick-off..."
});
我有一个附加到minute
和的“更改”侦听器detail
。当分钟或细节发生变化时,我的视图被更新,这工作正常。但是由于某种原因,当我到达第 15 分钟左右时,我的浏览器选项卡崩溃了。整个选项卡变得无响应,最终崩溃。我也尝试过使用setInterval
,但问题仍然存在。
可以在此处找到实时版本:
问题
- 为什么会这样?
- 我该如何解决它,或者我应该怎么做?