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 相关文章推荐
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
JavaScrip单线程引擎工作原理分析
Sep 04 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 Javascript
JavaScript实现简单图片滚动附源码下载
Jun 17 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
Sep 03 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
Sep 11 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与ASP
2006/10/09 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
Jquery ui css framework
2010/06/28 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
原生js+css调节音量滑块
2020/01/15 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python游戏地图最短路径求解
2019/01/16 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
Python ATM功能实现代码实例
2020/03/19 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
struct与class的区别
2014/02/03 面试题
班委竞选演讲稿
2014/04/28 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2014年车间工作总结
2014/11/21 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS