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 相关文章推荐
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
jQuery结合HTML5制作的爱心树表白动画
Feb 01 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 Javascript
vue实现树形菜单效果
Mar 19 Javascript
d3绘制基本的柱形图的实现代码
Dec 12 Javascript
vue框架制作购物车小球动画效果实例代码
Sep 26 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调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
js获取url参数值的两种方式
2013/09/10 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
使用python解析xml成对应的html示例分享
2014/04/02 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
python从子线程中获得返回值的方法
2019/01/30 Python
详解Python 解压缩文件
2019/04/09 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
王老吉广告词
2014/03/20 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
分享几种python 变量合并方法
2022/03/20 Python