iteye_75 2011-09-29 18:18
浏览 381
已采纳

javascript string.format效率问题

Extjs在机器较差的系统上的性能真是个问题,现在的业务大概是这样的:
有一个编辑表格,当我编辑一个单元格时,需要影响到其他几个单元格,以及统计行信息。
这个操作在机器较差的IE7、IE8下执行时间竟然差不多10s左右,firefox和chrome没有问题,基本上2-3s。
请看截图:

[img]http://dl.iteye.com/upload/attachment/562661/f7cdd017-1d98-33e4-a0d0-f41c18bb1d2b.jpg[/img]

使用IE自带的探查器分析了下,发现主要就是这个string.format执行了太长的时间。
其实现如下:
[code="java"]
format : function(format){
var args = Ext.toArray(arguments, 1);
return format.replace(/{(\d+)}/g, function(m, i){
return args[i];
});
}
[/code]
网上查询了下,确实是有存在性能问题。
主要参考:http://blog.csdn.net/hax/article/details/1416692

他提供的这个确实看不懂。同时我们的替代符是{1}、{2}这样的,也有点不一样。
不知道有谁遇到相关的问题没有,能否提供点建议。

  • 写回答

8条回答 默认 最新

  • cyrilluce 2011-09-30 12:18
    关注

    做个补丁吧,我也想不通为什么Ext3.3会越改越挫

    [code="js"]
    Ext.override(Ext.grid.GridView, {
    getColumnStyle : function(colIndex, isHeader) {
    var colModel = this.cm,
    colConfig = colModel.config,
    style = isHeader ? '' : colConfig[colIndex].css || '',
    align = colConfig[colIndex].align;

        //style += String.format("width: {0};", this.getColumnWidth(colIndex));
        style += "width: " + this.getColumnWidth(colIndex) + ";";
    
        if (colModel.isHidden(colIndex)) {
            style += 'display: none; ';
        }
    
        if (align) {
            // style += String.format("text-align: {0};", align);
            style += "text-align: " + align + ";";
        }
    
        return style;
    }
    

    });
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)