日期:2014-05-16 浏览次数:20824 次
var table = document.createElement("TABLE");
document.body.appendChild(table);
for(var i = 0; i < 1000; i++){
  var row = table.insertRow(-1);
  for(var j = 0; j < 10; j++){
    var cell = objRow.insertCell(-1);
  	cell.innerText = "( " + i + " , " + j + " )";
  }
}
/* 测试代码2 - 耗时: 7.6秒 */
var table = document.getElementById("TABLE");
document.body.appendChild(table);
var tbody = document.createElement("TBODY");
table.appendChild(tbody);
for(var i = 0; i < 1000; i++){
  var row = document.createElement("TR");
  tbody.appendChild(row);
  for(var j = 0; j < 10; j++){
    var cell = document.createElement("TD");
  	row.appendChild(cell);
  	cell.innerText = "( " + i + " , " + j + " )";
  }
}
/* 测试代码3 - 耗时: 1.26秒 */
var tbody = document.createElement("TBODY");
for(var i = 0; i < 1000; i++){   
  var row = document.createElement("TR");
	for(var j = 0; j < 10; j++){
    var cell = document.createElement("TD");
  	cell.innerText = "( " + i + " , " + j + " )";
  	row.appendChild(cell);
  }
  tbody.appendChild(row);
}
var table = document.getElementById("TABLE");
table.appendChild(tbody); 
document.body.appendChild(table);
var str = "";
for (var i = 0; i < 50000; i++) {
	str += "xxxxxx";
}
这段代码耗时14.325秒,结果并不理想。现在我们将代码改为如下的形式:
/* 测试代码2 - 耗时: 0.359秒 */
var str = "";
for (var i = 0; i < 100; i++) {
	var sub = "";
	for (var j = 0; j < 500; j++) {
		sub += "xxxxxx";
	}
	str += sub;
}
这段代码耗时0.359秒!同样的结果,我们做的只是首先拼装一些较小的字符串然后再组装成更大的字符串。这种做法可以有效的在字符串拼装的后期减小内存复制的数据量。知道了这一原理之后我们还可以把上面的代码进一步拆散以后进行测试。下面的代码仅耗时0.140秒。
/* 测试代码3 - 耗时: 0.140秒 */
var str = "";	
for (var i1 = 0; i1 < 5; i1++) {
	var str1 = "";
	for (var i2 = 0; i2 < 10; i2++) {
		var str2 = "";
		for (var i3 = 0; i3 < 10; i3++) {
			var str3 = "";
			for (var i4 = 0; i4 < 10; i4++) {
				var str4 = "";
				for (var i5 = 0; i5 < 10; i5++) {
					str4 += "xxxxxx";
				}
				str3