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的标签智能验证实现代码
Dec 27 Javascript
javascript温习的一些笔记 基础常用知识小结
Jun 22 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
Mar 01 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
Sep 05 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 Javascript
VUE实现密码验证与提示功能
Oct 18 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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
ip签名探针
2006/10/09 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php上传文件问题汇总
2015/01/30 PHP
PHP获取文件行数的方法
2015/06/10 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
javascript History对象原理解析
2020/02/17 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
Python函数学习笔记
2008/10/07 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
python生成验证码图片代码分享
2016/01/28 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
python实现月食效果实例代码
2019/06/18 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
学习党章思想汇报
2014/01/07 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python