1

私のバックボーン機能では、初めてサーバーからデータを取得しています(データがたくさんあります)。ドキュメントに追加しています。クライアントの要件によると、サーバーを 10 秒ごとに監視し、要素をドキュメントに適用する必要があります。私は常に「リセット」コールバックを使用して要素をレンダリングしています..

しかし、最初にすべての要素をドキュメントに適用する必要があります。後で更新するだけで十分です。どうすればよいでしょうか..?

ここに私のコードからの部分的なものがあります:

initialize:function(params){
            _.bindAll(this);
            var that = this;
            this.listItems = ["projectName","assignedTo","projectName"];
            this.classItems = ["projectName","assignedTo","sortBy"];
            this.listCatch = [];this.boardCatch=[];
            this.params = params;

            for(var i=0;i<this.listItems.length; i+=1){
                this.listCatch[i] = [];
            }

            this.collection = new singleton.collection;
            this.collection.on('reset', this.render);
                    //on load resetting..           
            var dataFetcher = function(){
                that.collection.fetch();
                appDataFetcher = setTimeout(dataFetcher,10000);
                    // as well all times resetting the whole data...
            };
            var appDataFetcher = setTimeout(dataFetcher,0); 
        },
        render:function(){
            this.listCollection = this.collection;
            this.boardCollection = this.collection;
            this.listCollect();
            this.boardViewSet();
        },
        listCollect:function(){
            var that = this;
            _(this.listItems).forEach(function(key,i){
                var uniqur = _.uniq(that.listCollection.models, function(item){
                    return item.get(key);
                });
                that.listViewSet(key,i,uniqur);
            });
        },
4

1 に答える 1

0

取得プロセスをこのように設定しました..期待どおりに正常に動作します。しかし、これが正しいアプローチでない場合は、だれかが私を訂正させてください..?

this.collection.on('add', this.render); 
this.collection.on('remove', this.render);  
        var dataFetcher = function(){
            that.collection.fetch({update:true,remove:true});
            appDataFetcher = setTimeout(dataFetcher,10000);
        };
 var appDataFetcher = setTimeout(dataFetcher,0);    
于 2013-02-14T13:05:01.317 に答える