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模拟类继承小例子
Jul 17 Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
在JavaScript中获取请求的URL参数[正则]
Dec 25 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
Jan 02 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
Jan 30 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
Vue实现开心消消乐游戏算法
Oct 22 Javascript
在vue中axios设置timeout超时的操作
Sep 04 Javascript
用vue写一个日历
Nov 02 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
建立动态的WML站点(三)
2006/10/09 PHP
php 启动报错如何解决
2014/01/17 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
javascript是怎么继承的介绍
2012/01/05 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
跟老齐学Python之for循环语句
2014/10/02 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
Python实现的桶排序算法示例
2017/11/29 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Python文件操作方法详解
2020/02/09 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
温泉秘密:Onsen Secret
2020/07/06 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
校园达人秀策划书
2014/01/12 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
办理信用卡工作证明
2014/09/30 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
监守自盗观后感
2015/06/10 职场文书