ExtJS:频繁使用 XTemplate = 性能下降?

标签 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 分开(实际上是分开的文件)并有助于提高代码的可读性/可维护性。 但是,有人知道每次重新应用模板是否会对性能造成过高的影响吗?我猜是这样,但我希望我能从“知情人士”那里得到权威的答复。

谢谢!

最佳答案

我同意@timdev——XTemplate 应该没问题(顺便说一句,速度非常快)。但是,我不会每次都从头开始创建 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);
}

关于ExtJS:频繁使用 XTemplate = 性能下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378614/

相关文章:

javascript - 未为新功能记录生成 FormattedID

java - 使用java将数据从数据库设置到Extjs网格

javascript - Extjs:由于 Ext.grid.column.Widget,网格崩溃

javascript - 如何计算日期是否在从现在起三年内?

javascript - 可扩展属性设置为 true 并且没有子节点的树节点不会呈现加号图标

javascript - 如何根据 sencha 中加载的文本调整弹出窗口的大小?

javascript - 如何右对齐 ExtJS tbar 的内容?

javascript - 为 Javascript 的 Ext.container.Viewport 添加滚动条到左侧面板

extjs 4.1 我什么时候在商店和模型上使用代理?

javascript - Sencha Architect 自动创建 ViewModel 和 View Controller