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事件热键兼容ie|firefox
Dec 30 Javascript
node.js中的fs.unlinkSync方法使用说明
Dec 15 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
Feb 23 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
Mar 05 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
JS获取复选框的值,并传递到后台的实现方法
May 30 Javascript
javacript获取当前屏幕大小
Jun 04 Javascript
轻松解决JavaScript定时器越走越快的问题
May 13 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 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下使用strpos需要注意 === 运算符
2010/07/17 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
python实现飞机大战微信小游戏
2020/03/21 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
2014年库房工作总结
2014/11/26 职场文书
大学生毕业个人总结
2015/02/15 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
python实现高效的遗传算法
2021/04/07 Python
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle