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小测验(代码集合)
Jul 27 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
May 30 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
Jan 02 Javascript
Javascript核心读书有感之类型、值和变量
Feb 11 Javascript
jQuery基于ajax实现星星评论代码
Aug 07 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 Javascript
javascript  删除select中的所有option的实例
Sep 17 Javascript
vue 动态修改a标签的样式的方法
Jan 18 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
Vue实现图片与文字混输效果
Dec 04 Javascript
用JS写一个发布订阅模式
Nov 07 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正则走开
2008/03/15 PHP
基于php 随机数的深入理解
2013/06/05 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
python对数组进行反转的方法
2015/05/20 Python
Python判断字符串与大小写转换
2015/06/08 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
简述 Python 的类和对象
2020/08/21 Python
python 实现表情识别
2020/11/21 Python
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
社区七一党员活动方案
2014/01/25 职场文书
领导接待方案
2014/03/13 职场文书
合作经营协议书
2014/04/17 职场文书
应届大学生求职信
2014/07/20 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
寒假生活随笔
2015/08/15 职场文书