ExtJS:频繁使用XTemplate =性能命中?

Cli*_*ris 2 extjs

我有一个显示几位数据的ExtJS面板,需要经常更新.例如,显示DOW,NYSE,NASDAQ等当前市场价格的面板.

考虑到数据将经常更新(至少每秒一次),更新数据字段的单个元素与每次使用XTemplate重新生成所有HTML的效率要高得多吗?

例如,如果我重新应用XTemplate,它可能如下所示:

update: function(marketData) {
   Ext.get('nasdaq-market-price-div-id').update(marketData.nasdaqPrice);
   Ext.get('nyse-market-price-div-id').update(marketData.nysePrice);
   //Repeat for all fields...
}
Run Code Online (Sandbox Code Playgroud)

与每次使用XTemplate相比,如下所示:

update: function(marketData) {
   var tpl = new XTemplate('<div>{nasdaqPrice}</div><div>{nysePrice}</div>');
   var html = tpl.applyTemplate(marketData);
   Ext.get('market-data-div-id').update(html);
}
Run Code Online (Sandbox Code Playgroud)

我喜欢使用XTemplate,因为它允许我将HTML(实际上是单独的文件)分开,并有助于代码的可读性/可维护性.但是,有没有人知道每次重新应用模板是否会导致性能受到惊吓?我猜是有的,但我希望能从"知情人"那里得到一个权威的答案.

谢谢!

Bri*_*kau 6

我同意@timdev - XTemplate应该没问题(BTW非常快).但是,我不会每次都从头创建XTemplate.我会做更像这样的事情:

update: function(marketData) {
   // assuming that this is a class or some appropriate scope
   if(!this.PriceTpl){
       this.PriceTpl = new XTemplate('<div>{nasdaqPrice}</div><div>{nysePrice}</div>');
       this.PriceTpl.compile();
   }
   this.PriceTpl.overwrite('market-data-div-id', marketData);
}
Run Code Online (Sandbox Code Playgroud)