0

我正在backbone.js 中开发一个小型Web 应用程序。在一个视图中,我使用 setInterval 方法来提供一些动画效果。我通过增加一个变量以 3s 的间隔更改 img 标签的 src 属性index

问题是当我重新进入同一个视图时,索引变量在不到 3 秒的时间内递增。有时小于1s。

在重新渲染视图之前,我将使用以下代码关闭已经存在的视图以避免僵尸对象。

我的路由器

搜索页面:

    function(data) {

    if(!directory.myview){

       directory.myview=new directory.SearchView({model:data}); 

    }
 else{

   directory.myview.close();
       directory.myview=new directory.SearchView({model:data});

   }

   // code to append the rendered view to html page comes here 

}

我的观点

directory.SearchView = Backbone.View.extend({
render:function () {
    this.$el.html(this.template(this.model));
    return this;
},
close :function()
{       
    this.unbind();
    this.remove();
    delete this.$el; 
    delete this.el;
}

});

4

2 回答 2

0

我怀疑你关闭的顺序导致了这个问题。删除 ui 元素后,您应该删除视图。

close :function()
{       
    this.unbind();

    delete this.$el; 
    delete this.el;
    //remove should be last after you delete and unbind
    this.remove();
}
于 2013-06-19T14:24:33.160 回答
0

您可能想阅读Derick Bailey 发布的zombies-run-managing-page-transitions-in-backbone-apps 。这是一本很好的读物,一旦您了解了下划线机制,您可能想要使用backbone.marionette来管理您的视图。

于 2013-06-19T21:07:21.037 回答