Backbone.js是这个任务的正确框架吗?
我已经看了几个小时的backbone.js教程了,如果不花点时间认真研究一下,我就无法决定它是否适合我想要实现的目标 我的应用程序主要基于一个页面,相当重的AJAX。此页面上有几个UI元素,它们轮询服务器并独立更新自身。此外,还有一个中央轮询机制,用于查找可能触发任何其他UI组件更新的事件 我考虑的是将所有这些独立的URL聚合成一个,让我的前端只监听该URL,然后将每个事件委托给相应的UI元素。实际上,它有点像我前端的消息总线Backbone.js是这个任务的正确框架吗?,backbone.js,Backbone.js,我已经看了几个小时的backbone.js教程了,如果不花点时间认真研究一下,我就无法决定它是否适合我想要实现的目标 我的应用程序主要基于一个页面,相当重的AJAX。此页面上有几个UI元素,它们轮询服务器并独立更新自身。此外,还有一个中央轮询机制,用于查找可能触发任何其他UI组件更新的事件 我考虑的是将所有这些独立的URL聚合成一个,让我的前端只监听该URL,然后将每个事件委托给相应的UI元素。实际上,它有点像我前端的消息总线 听起来像是合理地使用主干线?还是我没有抓住要点?主干网可以工作,但我
听起来像是合理地使用主干线?还是我没有抓住要点?主干网可以工作,但我也会检查ember.js,也称为sproutcore 2.0,主干网对我来说太冗长了,ember.js会处理这个问题,检查。主干网在这种情况下应该可以正常工作 创建一个中心事件轮询器。这将从服务器获取所有类型的事件,并将它们发布到应用程序的其余部分(未测试): 然后,您可以让多个模型监听这些事件:
var StockModel = Backbone.Model.extend({
initialize : function() {
this.poller.bind('stockChange', this.changeStock, this);
},
changeStock: function(stock){
this.set({name: event.name});
}
});
最后,让视图侦听模型中的更改:
var StockView = Backbone.View.extend({
initialize : function() {
this.model.bind('change:name', this.updateStock, this);
//this.poller.bind('stockChange', this.updateStock, this); //you could also listen for poll events directly in view with out having a model for each view.
},
updateStock: function(){
$(this.el).html(model.get("name"));
}
});
要设置轮询器和视图,请执行以下操作:
var eventPoller = new EventPoller();
var stockModel = new StockModel({poller: eventPoller})
var stockView = new StockView({model:stockModel});
eventPoller.poll();
一个普遍的建议是主干网需要几天的努力学习,但如果您阅读文档并遵循一些基本示例,您将了解最新情况
可能主干最让人困惑的是这个。我建议使用firebug并通过应用程序进行调试,以查看这
是如何变化的
var eventPoller = new EventPoller();
var stockModel = new StockModel({poller: eventPoller})
var stockView = new StockView({model:stockModel});
eventPoller.poll();