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 相关文章推荐
用js解决数字不能换行问题
Aug 10 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
深入浅析JavaScript中的3DES
Aug 24 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
javascript防篡改对象实例详解
Apr 10 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
Sep 17 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 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
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
JavaScript常用小技巧小结
2014/12/29 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
BootStrap的双日历时间控件使用
2017/07/25 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python随机生成库faker库api实例详解
2019/11/28 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
django rest framework serializers序列化实例
2020/05/13 Python
Python绘制组合图的示例
2020/09/18 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
25道Java面试题集合
2013/05/21 面试题
学术会议邀请函范文
2014/01/22 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
人事专员岗位职责
2015/02/03 职场文书
消防安全培训工作总结
2015/10/23 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
JavaScript流程控制(分支)
2021/12/06 Javascript