当我重新解析骨干看来,什么是跳过重新渲染之类的图像和谷歌地图的好办法? 我的照片和地图的意见往往很糟糕的观点进行重新渲染每次(这是相当常见)闪烁。 随着特别是图像,它是一个模板引擎奠定了从头开始的布局,这使图像标签无论是从服务器或从缓存中再次取位图的情况。
当然,我仍然希望以保持那种不可知的布局,所以在技术上它不应该知道,我们要显示的图像,对不对?
当我重新解析骨干看来,什么是跳过重新渲染之类的图像和谷歌地图的好办法? 我的照片和地图的意见往往很糟糕的观点进行重新渲染每次(这是相当常见)闪烁。 随着特别是图像,它是一个模板引擎奠定了从头开始的布局,这使图像标签无论是从服务器或从缓存中再次取位图的情况。
当然,我仍然希望以保持那种不可知的布局,所以在技术上它不应该知道,我们要显示的图像,对不对?
我会提供一个解决方案,就是与你的假设冲突“的观点应该是不可知的模板”。
如果调用render()
任何时候在任何模式发生了变化,你会在你的浏览器在这种闪烁 ,尤其是当模板大。
我的建议是独立的render
,其只发生一次,当视图是第一次可视化和几个视图的update
辅助方法,其是负责更新小块连接到具体的模型属性查看的。
例如:
// 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()
})
为了让你真的不希望最好的结果重新渲染包含媒体的HTML,所以我会建议使用的改变,所以你不需要重新渲染的内容,没有按视图的内容更针对性的意见“T。