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 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?