我在以下backbone.js Controller 的索引操作中使用fetch:
App.Controllers.PlanMembers = Backbone.Controller.extend({
routes: {
"": "index"
},
index: function () {
var planMembers = new App.Collections.PlanMembers();
planMembers.fetch({
success: function () {
var recoveryTeam = planMembers.select(function (planMember) {
return planMember.get("TeamMemberRole") == "RecoveryTeam";
});
var otherMembers = planMembers.select(function (planMember) {
return planMember.get("TeamMemberRole") == "Other";
});
new App.Views.Index({ collection: { name: "Team", members: recoveryTeam }, el: $('#recoveryTeam') });
new App.Views.Index({ collection: { name: "Team", members: otherMembers }, el: $('#otherTeam') });
},
error: function () {
alert('failure');
showErrorMessage("Error loading planMembers.");
}
});
}
});
问题在于结果正在被缓存。它不会获取数据库更改。有没有办法告诉backbone.js不要缓存结果?
我知道我可以覆盖集合的 url 并附加时间戳,但我正在寻找比这更干净的东西。
最佳答案
这通常是 IE 上的问题,backbone 与此无关。您必须转到 jQuery ajax 调用并查看文档。 Backbone 使用 jquery ajax 作为其同步方法。您可以执行以下操作来强制所有浏览器上的 ajax 调用:
$.ajaxSetup({ cache: false });
关于backbone.js 获取缓存的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178366/