サーバーからある種のツリーデータを取得します(例として):
[
{
nodeName: "top level 1",
nodes: [
{
nodeName: "2nd level, item 1",
nodes: [
{
nodeName: "3rd level, item 1"}
]}
]},
{
nodeName: "top level 2",
nodes: [
{
nodeName: "2nd level, item 3",
nodes: [
{
nodeName: "3rd level, item 7"},
{
nodeName: "3rd level, item 8"},
{
nodeName: "3rd level, item 9"}
]}
]}
]
これをレンダリングするために、Backbone.Marionette.CollectionView と Backbone.Marionette.CompositeView http://jsfiddle.net/AdWjU/179/を使用しています( derickbailey の記事に従います)。
しかし、300 秒ごとにサーバーをポーリングする必要があり、変更されたツリーを返すことができます。
[
{
nodeName: "top level 1",
nodes: [
{
nodeName: "2nd level, item 1",
nodes: [
{
nodeName: "3rd level, item 1"},
{
nodeName: "new name"} // changed
]}
]},
{
nodeName: "top level 2",
nodes: [
{
nodeName: "2nd level, item 3",
nodes: [
{
nodeName: "3rd level, item 7"},
{
nodeName: "3rd level, item 8"},
{
nodeName: "3rd level, item 9"},
{
nodeName: "3rd level, item 10"} // added
]}
]}
]
次に、tree.update(data) を呼び出すだけで、データ全体を再レンダリングします。
変更されたプロパティに依存するビューのみを更新するにはどうすればよいですか?
再レンダリングされるビューを減らそうとしています。このタスクを達成するには、CompositeViews を使用するか、Backbone-relational モデルのようなものを試す必要がありますか?