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的面向对象(一)
Nov 09 Javascript
javascript中将Object转换为String函数代码 (json str)
Apr 29 Javascript
js分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
Aug 12 Javascript
jQuery Validate设置onkeyup验证的实例代码
Dec 09 Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
JS实现的简单标签点击切换功能示例
Sep 21 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
electron 如何将任意资源打包的方法步骤
Apr 16 Javascript
js实现双人五子棋小游戏
May 28 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二维数组转成字符串示例
2014/02/17 PHP
php递归创建目录的方法
2015/02/02 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python安装后的目录在哪里
2020/06/21 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
详解python中的闭包
2020/09/07 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
车间组长岗位职责
2013/12/20 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
村官个人总结范文
2015/03/03 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL