当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript 字符串连接的性能问题(多浏览器)

Javascript
javascript function、指针及内置对象
Javascript 同时提交多个Web表单的方法
用jQuery简化JavaScript开发分析
Javascript静态分页(多个资料,静态自动分页)
JavaScript 调试器简介
JavaScript 判断浏览器类型及版本
javascript eval函数深入认识
一个写得较好的JavaScript日期挑选控件
JavaScript基本概念初级讲解论坛贴的学习记录
javascript web对话框与弹出窗口
input、button的不同type值在ajax提交表单时导致的陷阱
javascript 密码强弱度检测万能插件
javascript 特殊字符串
Javascript动态伸缩+淡出淡入
javascript URL锚点取值方法
jQuery Div中加载其他页面的实现代码
javascript 文档的编码问题解决
escape、encodeURI 和 encodeURIComponent 的区别
[推荐]javascript 面向对象技术基础教程
js 页面执行时间计算代码

Javascript 中的 javascript 字符串连接的性能问题(多浏览器)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 146 ::
收藏到网摘: n/a

今天看了javascript 高级程序设计 谈到了字符串连接的性能问题 书中附带的测试代码如下
复制代码 代码如下:

<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两种方式结果相反,看来以后写连接优化还有注意浏览器呀