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 22 Javascript
js对象的构造和继承实现代码
Dec 05 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
JS中Location使用详解
May 12 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
微信小程序实现同一页面取值的方法分析
Apr 30 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
Vue.use源码分析
2017/04/22 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
python笔记:mysql、redis操作方法
2017/06/28 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
django rest framework 自定义返回方式
2020/07/12 Python
如何使用python写截屏小工具
2020/09/29 Python
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
华为python面试题
2016/05/03 面试题
平面设计的岗位职责
2013/11/08 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python