我需要在我的路由器中插入一个在每个指定时间(例如5秒)工作的功能,但问题是每次我回到家时计数器都会重启计数。 如果我打开我的应用程序计数器启动,即使我去另一个页面它正确计数,但如果我回到家,计数器重新启动。我尝试使用绑定和解除绑定但不起作用。
这是我的路由器:
var AppRouter = Backbone.Router.extend({
routes: {
"": "home",
"user/:id":"userDetails",
"settings":"settings",
"friends":"friends",
"mailbox":"mailbox",
"landscape":"landscape"
},
initialize:function(){
$(window).bind('onload', setInterval(function(){alert("Hello")},5000));<---------
$(window).unbind('onload'); <---------
},
home: function() {
if (Parse.User.current()){
var user=new Person();
user.savePosition();
new BarraScreamView();
new MenuView();
}
else
new LoginView();
},
userDetails: function (id) {
console.log(id);
console.log(Models.utenti.get(id));
var page=new UserDetailView({model:Models.utenti.get(id)});
this.changePage(page);
},
答案 0 :(得分:0)
在网址(www.example.com/ #fragment )中修改片段标识符不会导致重新加载页面。另一方面,如果您删除片段标识符,则会重新加载页面。
我假设当你每次回家时说“时,你的意思是每次修改网址时都没有片段,就会出现问题。
如果您添加新路线#home,并访问example.com/#home
而非example.com/
,则应解决此问题。
routes: {
"": "home",
"home": "home",
...
}
(编辑:您也可以使用example.com/#
作为主路线,而无需更改路线 - 对象)
<强> P.S。强>
由于Router.initialize()只应调用一次,因此该代码应该足够用于init:
initialize:function(){
setInterval( function(){ alert("Hello") }, 5000 );
}