javascript 字符串连接的性能问题(多浏览器)


Posted in Javascript onNovember 18, 2008

书中附带的测试代码如下 

<html> 
<head> 
<title>Example</title> 
</head> 
<body> 
<p><strong>Note:</strong> The latest versions of Firefox seem to have fixed the string concatenation problem. If you are using Firefox 1.0 or later, the string buffer may actually take longer than normal string concatenation.</p> 
<script type="text/javascript"> 
function StringBuffer() { 
this.__strings__ = new Array; 
} 
StringBuffer.prototype.append = function (str) { 
this.__strings__.push(str); 
}; 
StringBuffer.prototype.toString = function () { 
return this.__strings__.join(""); 
}; 
var d1 = new Date(); 
var str = ""; 
for (var i=0; i < 10000; i++) { 
str += "text"; 
} 
var d2 = new Date(); 
document.write("Concatenation with plus: " + (d2.getTime() - d1.getTime()) + " milliseconds"); 
var buffer = new StringBuffer(); 
d1 = new Date(); 
for (var i=0; i < 10000; i++) { 
buffer.append("text"); 
} 
var result = buffer.toString(); 
d2 = new Date(); 
document.write("<br />Concatenation with StringBuffer: " + (d2.getTime() - d1.getTime()) + " milliseconds"); 
</script> </body> 
</html>

在 Firefox/3.0.3中执行的结果如下:
Concatenation with plus: 5 milliseconds
Concatenation with StringBuffer: 10 milliseconds
在IE6中执行结果如下:
Concatenation with plus: 234 milliseconds
Concatenation with StringBuffer: 62 milliseconds
1.两种方式性能差别很大
2.看来IE6字符串连接处理能力比FF3很差呀
3.IE6和FF3两种方式结果相反,看来以后写连接优化还有注意浏览器呀

Javascript 相关文章推荐
用JQuery在网页中实现分隔条功能的代码
Aug 09 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
浅谈JavaScript函数参数的可修改性问题
Dec 05 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
js实现本地时间同步功能
Aug 26 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
JavaScript 反射学习技巧
Oct 16 Javascript
js的闭包的一个示例说明
Nov 18 #Javascript
Ext面向对象开发实践(续)
Nov 18 #Javascript
Javascript打印网页部分内容的脚本
Nov 17 #Javascript
js实现简单模态窗口,背景灰显
Nov 14 #Javascript
javascript 限制输入和粘贴(IE,firefox测试通过)
Nov 14 #Javascript
javascript 出生日期和身份证判断大全
Nov 13 #Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 #Javascript
You might like
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
python中from module import * 的一个坑
2014/07/20 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python随机生成库faker库api实例详解
2019/11/28 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
python爬虫工具例举说明
2020/11/30 Python
编辑个人求职信范文
2013/09/21 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
小学生作文评语集锦
2014/12/25 职场文书
个人先进事迹总结
2015/02/26 职场文书
离婚案件上诉状
2015/05/23 职场文书
企业年会祝酒词
2015/08/11 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
亲情作文之母爱
2019/09/25 职场文书
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL