Pre*_*hev 5 javascript backbone.js
当我重新渲染骨干视图时,跳过重新渲染图像和谷歌地图之类的东西的好方法是什么?每次重新渲染视图时,我的照片和地图视图都会变得非常糟糕(这种情况经常发生).特别是图像,模板引擎从头开始布局布局,这使得图像标签再次从服务器或缓存中获取位图.
当然,我仍然希望视图对布局保持一种不可知性,所以从技术上来说它不应该知道我们要显示图像,对吧?
我将提供一个与您的假设相冲突的解决方案"View应该与模板无关".
如果您render()在模型中随时调用任何更改,您将在浏览器中闪烁,特别是如果模板很大.
我的建议是renderView的独立部分,它在View第一次可视化时只发生一次,而几个update辅助方法负责更新链接到具体Model属性的View的小部分.
例如:
// code simplified and not tested
var MyView = Backbone.View.extend({
initialize: function(){
this.model.on( "change:title", this.updateTitle, this );
this.model.on( "change:description", this.updateDescription, this );
// ... more change:XXX
},
render: function(){
this.$el.html( this.template( this.model.toJSON() ) );
},
updateTitle: function(){
this.$el.find( ".title" ).html( this.model.get( "title" ) );
},
updateDescription: function(){
this.$el.find( ".description" ).html( this.model.get( "description" ) );
},
// ... more updateXXX()
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |