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 相关文章推荐
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
Oct 20 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
jQuery实现轮播图源码
Oct 23 jQuery
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 filter_var() 函数 Filter 函数
2012/04/25 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
原生JS封装animate运动框架的实例
2017/10/12 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
出纳岗位职责模板
2013/11/27 职场文书
参观监狱心得体会
2014/01/02 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
毕业生就业意向书
2014/04/01 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
工地材料员岗位职责
2015/04/11 职场文书
二审代理词范文
2015/05/25 职场文书
食堂卫生管理制度
2015/08/04 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL