2013-03-04 78 views
3

我正在清理一些较旧的C#代码,并在Page_Load方法中跑过此块。在asp.net中哪个更有效,在运行时或设计时添加属性?

txtFirstName.Attributes.Add("onchange", "CheckChange();"); 
txtMiddleName.Attributes.Add("onchange", "CheckChange();"); 
txtLastName.Attributes.Add("onchange", "CheckChange();"); 
txtIdentifier.Attributes.Add("onchange", "CheckChange();"); 

将它保持原样或在HTML中设置这些特定属性会更高效吗?

回答

4

难道是更有效地离开它,因为它是,或者在HTML设定的特定属性?

我认为这里的效率不重要,可能两者的差别都很小。

但是...我认为HTML属性和特别的JavaScript事件和代码应该写在客户端。

独立的顾虑当你写客户端上的客户端代码的代码是一个更容易开发和维护。这是Asp.net-MVC在新应用程序中使用的原因之一,而Asp.Net几乎有0个新应用程序。

+0

我认为这段代码属于HTML,仅仅是出于文体的原因。我认为它在性能上不会有太大的差别,但我想我会在这里问。 – 2013-03-04 19:47:03

1

我认为将它们设置为HTML会稍微高效一些,因为可以将HTML编写为按原样输出,并且需要使用某些字符串连接和格式化操作将控件的对象模型转换为HTML。

但总而言之,如果你没有成千上万个这样的属性,我想这不会影响你的页面的性能。

虽然,我不是100%肯定,因为我从来没有试过这种微型优化

1

我更愿意在aspx页面中编写代码,并且会在页面被提交并链接一些javascript之后动态生成锚点的情况下选择代码隐藏。它涉及到可维护性而不是性能。

编辑

作为附加输入,考虑其在javascript松散耦合的代码,而不是直接在标签上指定如

document.getElementById('txtLastName').onclick = function() { 
//code 
}; 
3

我创建了一个简单的页面,这个文本框

<asp:TextBox runat="server" ID="txtFirstName" onblur="CheckBlur()"></asp:TextBox> 
事件

和PageLoad我把那条线

txtFirstName.Attributes.Add("onchange", "CheckChange();"); 

现在,我去检查编译后的文件,发现该编译器中加入这一行

#line 12 "D:\StackOverFlow\AttrTest.aspx" 
((System.Web.UI.IAttributeAccessor)(@__ctrl)).SetAttribute("onblur", "CheckBlur()"); 

所以,编译器添加同一行,你把它放在后面的代码以同样的方式。因此,从这个角度来看,结果似乎以速度或页面编译的方式相同。

相关问题