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

Javascript
对YUI扩展的Gird组件 Part-1
xtree.js 代码
newxtree.js代码
jQuery使用手册之一
jQuery使用手册之二 DOM操作
Javascript中eval函数的详细用法与说明
JavaScript 中的事件教程
JavaScript初级教程(第二课)
JavaScript初级教程(第三课)
JavaScript初级教程(第四课)
JavaScript初级教程(第五课)
诘屈聱牙之javascript中国象棋
filemanage功能中用到的common.js
filemanage功能中用到的lib.js
Javascript中eval函数的使用方法与示例
用javascript控制iframe滚动的代码
总结两个Javascript的哈稀对象的一些编程技巧
疯掉了,尽然有js写的操作系统
用javascript实现select的美化的方法
javascript+dom树型菜单类,希望朋友们一起进步

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 288 ::
收藏到网摘: 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两种方式结果相反,看来以后写连接优化还有注意浏览器呀