请问如何高效拼接字符串???
时间:2009-03-24
来源:互联网
作者: foshan 发布时间: 2009-03-24
toString使用Array的join("")方法
作者: gordianyuan 发布时间: 2009-03-24
例如下面的代码是在ASP.NET AJAX 客户端框架中动态生成表格的,请问如何修改成在jQuery客户端框架能应用?谢谢!
var sb = new Sys.StringBuilder("<table id='DataTable2' cellpadding='3' cellspacing='0' border='0'>");
sb.append("<tr><th style='width: 80px'>公司名称</th><th style='width: 50px'>姓名</th><th style='width: 100px'>职务</th><th style='width: 80px'>办公电话号码</th><th style='width: 80px'>手提电话号码</th><th style='width: 80px'>传真号码</th><th style='width: 160px'>电子邮箱</th><th style='width: 80px'>备注</th></tr>");
for (var i = 0; i < result.rows.length; i++)
{
sb.append(
String.format(
"<tr onMouseOver='onMouseOver1(this)' onMouseOut='onMouseOut1(this)' style='background-color:FloralWhite'><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td><td>{7}</td></tr>",
result.rows["sgdwmc"],
result.rows.UserName,
result.rows["ZhiWu"],
result.rows["OfficeDianHua"],
result.rows["MoveDianHua"],
result.rows["ChuanZhen"],
result.rows["E_mail"],
result.rows["BeiZhu"]
)
);
}
sb.append("</table>");
$get("result").innerHTML = sb.toString();
作者: foshan 发布时间: 2009-03-24
var strTbody = ["<table cellpadding='3' cellspacing='0' border='0'><tbody>"];
strTbody.push("<tr><th style='width: 80px'>公司名称</th><th style='width: 50px'>姓名</th><th style='width: 100px'>职务</th><th style='width: 80px'>办公电话号码</th><th style='width: 80px'>手提电话号码</th><th style='width: 80px'>传真号码</th><th style='width: 160px'>电子邮箱</th><th style='width: 80px'>备注</th></tr>");
for (var i = 0; i < result.rows.length; i++) {
strTbody.push("<tr onMouseOver='onMouseOver1(this)' onMouseOut='onMouseOut1(this)' style='background-color:FloralWhite'><td>" + result.rows["sgdwmc"] + "</td><td>" + result.rows.UserName + "</td><td>" + result.rows["ZhiWu"] + "</td><td>" + result.rows["OfficeDianHua"] + "</td><td>" + result.rows["MoveDianHua"] + "</td><td>" + result.rows["ChuanZhen"] + "</td><td>" + result.rows["E_mail"] + "</td><td>" + result.rows["BeiZhu"] + "</td></tr>");
}
strTbody.push("</tbody></table>");
var obj = document.getElementById("tableDiv");
obj.innerHTML = strTbody.join("");
作者: foshan 发布时间: 2009-03-24
$.each(result.rows, function(){
str += "<tr><td>" + this.name + "</td><td>" + this.value + "</td></tr>";
});
str += "</table>";
$("#tableDiv").append(str);
几个建议
1.onMouseOver等属性不要加到html上,分离架构,可以写成
$("#tableDiv table>tr).mouseover(function(){
// do something
});
2.先不要管性能,只有确定有严重的性能问题才进行优化,这里字符链接性能应该不是问题
作者: gordianyuan 发布时间: 2009-03-24
str += "<tr><td>" + this.name + "</td><td>" + this.value + "</td></tr>"; 这样拼接字符串的方法在别的地方看到说在大量的数据行这是效率最低、性能消耗最大的写法。而将字符串作为数组对象的方式是目前效率最高,性能最优的方式。
作者: foshan 发布时间: 2009-03-24
作者: foshan 发布时间: 2009-03-24
$.extend($, {
stringFormat: function(str){
for(var i = 0;i < arguments.length - 1;i++){
str = str.replace("{" + i + "}", arguments[i+1]);
}
return str;
}
});
例子
$.stringFormat("Hello {0}, {1}","foshan","welcome to here");
作者: gordianyuan 发布时间: 2009-03-24

作者: foshan 发布时间: 2009-03-24
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28