javascript 字符串連接的性能問題(多瀏覽器)
更新時間:2008年11月18日 11:20:54 作者:
今天看了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中執(zhí)行的結果如下:
Concatenation with plus: 5 milliseconds
Concatenation with StringBuffer: 10 milliseconds
在IE6中執(zhí)行結果如下:
Concatenation with plus: 234 milliseconds
Concatenation with StringBuffer: 62 milliseconds
1.兩種方式性能差別很大
2.看來IE6字符串連接處理能力比FF3很差呀
3.IE6和FF3兩種方式結果相反,看來以后寫連接優(yōu)化還有注意瀏覽器呀
復制代碼 代碼如下:
<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中執(zhí)行的結果如下:
Concatenation with plus: 5 milliseconds
Concatenation with StringBuffer: 10 milliseconds
在IE6中執(zhí)行結果如下:
Concatenation with plus: 234 milliseconds
Concatenation with StringBuffer: 62 milliseconds
1.兩種方式性能差別很大
2.看來IE6字符串連接處理能力比FF3很差呀
3.IE6和FF3兩種方式結果相反,看來以后寫連接優(yōu)化還有注意瀏覽器呀
相關文章
html+css+js實現(xiàn)簡易版ChatGPT聊天機器人
OpenAI的一款聊天機器人模型ChatGPT爆火,本篇文章用一百行html+css+js代碼給大家制作一款簡易的聊天機器人。2023-02-02js生成隨機數(shù)之random函數(shù)隨機示例
js生成隨機數(shù)可以使用JavaScript Math.random()內置函數(shù),下面有個不錯的示例,大家可以嘗試操作下2013-12-12JavaScript實現(xiàn)級聯(lián)菜單的方法
這篇文章主要介紹了JavaScript實現(xiàn)級聯(lián)菜單的方法,涉及javascript頁面元素操作的相關技巧,需要的朋友可以參考下2015-06-06再談JavaScript中bind、call、apply三個方法的區(qū)別與使用方式
這篇文章主要介紹了Javascript中bind、call、apply三個方法的使用方式,需要的朋友可以參考下2022-05-05