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

时间:2010-12-07 15:53:17

标签: 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...
}

每次使用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);
}

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

谢谢!

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:3)

根本不具有权威性,但我认为你可能会过早地进行优化。非X模板方法可能效率较低,但您有什么理由关心吗?

如果没有对某些不良行为的描述,这听起来像是在担心现在不存在的问题,很可能在将来永远不存在。

保持你的代码清洁,直到你有一个真实的,现实的理由,为了表现而使它丑陋。