使用单个ajax请求更新两个视图

时间:2014-08-07 08:14:51

标签: backbone.js

我有一个骨干应用程序,其中目前有两个视图在同一个API上进行轮询。在DB中状态改变的情况下,API返回数据,否则它不会。如果来自一个视图的请求读取状态更改,那么另一个视图将无法获得已经读取状态更改信息的API。这在两个视图之间创建了一种竞争。因此,我一直在考虑将API调用移动到单个位置,然后在具有状态更改的响应上,在两个视图中调用函数,这些函数会对该信息进行进一步处理。那么,最好的方法是什么?我应该创建一个单独的视图并使其继承两个视图然后调用它们的函数吗?

2 个答案:

答案 0 :(得分:1)

在我看来,您希望将两个视图连接到同一模型 - 即:相同的数据请求会影响两个不同的视图。

我建议在两个视图之间实际共享此模型 - 这样,每个视图都可以附加fetch事件(或任何其他模型更新事件)的处理程序并适当地更新其内容。

每个视图都可以包含对模型的引用,并将它的处理程序附加到同一模型。

答案 1 :(得分:1)

为两个不同的视图设置相同的模型,然后从该模型中监听change Event,        在你的两个视图中都有这个事件监听器

this.model('change',this.takeAction);