我正在开发一个 Backbone 应用程序,复杂性正在增加。副作用之一是有时页面的初始加载速度很慢。我已将此问题追溯到 AJAX 请求等待。
在我目前的一些路线中,我提出了 4 个单独的请求。有些是重要的,例如加载模板。因此,我使用 jQuery ajax 请求中的 done() 函数来传递继续加载页面的回调。
有时我需要一个无关紧要的小元素的数据。例如,加载最后 5 篇博文的请求。现在我的想法是,我想尽快提出请求,而不会停止其余路线的执行,我想知道它什么时候准备好。
所以这是我的建议
var myModel = new Posts(); //instantiate the model
myModel.dfd = myModel.fetch();
然后稍后在处理最后一个帖子元素的子视图中具有将模型传递给的方法并执行类似的操作
render : function() {
var self = this;
this.model.dfd.done(function( ) {
this.html( template( self.model.toJSON() );
}
}
这个想法是,如果请求已经完成,它将立即执行,如果没有,它将等待。但至少我从节省时间中受益,直到它达到这一点。
这是一个好主意吗?