我的一个页面在* .cs文件中使用jQuery,如下所示。但我听说字符串连接会降低性能。我无法在页面中写入它(即在* .aspx中),因为我使用的是UpdatePanel,它会消除所有客户端代码。还有其他替代方法吗? StringBuilder怎么样?
代码位于 MyTestPage.aspx.cs 中,字符串使用 +
连接// Function to be called by jQuery
@"function ddlAssignCaseTo_SelectIndexChanged() {
var value = $('#" + ddlAssignCaseTo.ClientID + @"').val();
value == '1' ? $('#" + divAction.ClientID + @"').show() : $('#" + divAction.ClientID + @"').hide();
}
function ddlReviewedBy_SelectIndexChanged() {
var value = $('#" + ddlReviewedBy.ClientID + @"').val();
value == '0'
? $('#" + divReviewee.ClientID + @"').hide()
: $('#" + divReviewee.ClientID + @"').show();
value == '0'
? $('#" + lblIn.ClientID + @"').hide()
: $('#" + lblIn.ClientID + @"').show();
}"
答案 0 :(得分:2)
这是Javascript - 你在C#中以某种方式构建它吗?
无论如何,如果你没有在循环中连接字符串,那么创建StringBuilder
的开销是不值得的。我看到经常被引用的一个经验法则是当你有超过8倍的联合时改为StringBuilder
- 但我看到更多的基准测试表明它不仅仅是这个。
请记住,无论如何都会优化内联连接:
string s = "string1" + "string2";
不慢于:
string s = "string1string2";
答案 1 :(得分:1)
在这种情况下,您应该使用String.Format("#{0}", ddlAssignCaseTo.ClientID)
,因为这会使用StringBuilder,但允许您保持代码简洁。
你当然应该尽量避免为所提供的所有答案连接字符串。
答案 2 :(得分:-1)
你可能比使用StringBuilder
更糟糕的是因为这个原因而设计的。{/ p>