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 禁用只读文本框获得焦点时的退格键
Apr 25 Javascript
基于jQuery的一个扩展form序列化到json对象
Dec 09 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
js Function类型
Dec 04 Javascript
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
Mar 31 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
Jul 21 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
微信小程序 setData 对 data数据影响问题
Apr 18 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
详解python里的命名规范
2018/07/16 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
工作表扬信
2015/01/17 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
创业计划书详解
2019/07/19 职场文书