Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过避免使用asp.net组件和仅使用html组件来提高web应用程序的性能_C#_Html_Asp.net - Fatal编程技术网

C# 通过避免使用asp.net组件和仅使用html组件来提高web应用程序的性能

C# 通过避免使用asp.net组件和仅使用html组件来提高web应用程序的性能,c#,html,asp.net,C#,Html,Asp.net,我听说html组件比asp.net组件重量轻,因此,通过避免使用asp.net组件(如asp:button)和仅使用html组件,web应用程序的性能会提高吗 asp.net组件的使用还会增加服务器负载吗?? 当事件发生时(比如asp.net按钮单击),整个视图状态是否会发送到服务器并接收回来?所以这将导致大量数据来回传输,对吗 如果我使用html按钮和ajax调用来发送/接收数据,而不是asp.net元素,则不会发生这种情况,因此性能将得到优化。我的理解正确吗?请提供您的视图如果您使用html

我听说html组件比asp.net组件重量轻,因此,通过避免使用asp.net组件(如asp:button)和仅使用html组件,web应用程序的性能会提高吗

asp.net组件的使用还会增加服务器负载吗?? 当事件发生时(比如asp.net按钮单击),整个视图状态是否会发送到服务器并接收回来?所以这将导致大量数据来回传输,对吗


如果我使用html按钮和ajax调用来发送/接收数据,而不是asp.net元素,则不会发生这种情况,因此性能将得到优化。我的理解正确吗?请提供您的视图

如果您使用html元素而不是asp.net元素,ViewState的大小确实会减小,但我不确定这是否会优化您的web应用程序,因为您必须编写额外的代码来处理html元素的输入。您将不得不编写更复杂的代码,这段代码将增加应用程序性能的一些开销

在每个事件中(例如,
按钮_单击
),整个ViewState都会发送到web服务器。拥有一个大的ViewState将使您的应用程序缓慢而沉重

使用ajax调用是一种很好的方法,因为这种方法可以生成执行一个操作的小请求,因此它们通常是轻量级的。此外,使用ajax调用还提供了更丰富的用户体验

总的来说,我的意见是:

  • 不要使用普通html元素而不是ASP.NET元素。您可以在代码隐藏中不使用html元素的情况下使用html元素(因此它们不会包含在ViewState中)
  • 如果不需要,可以在应用程序的用户控件中禁用ViewState。这样,使用ASP.NET元素不会增加ViewState
  • 开始在系统中使用缓存。您可以使用
    Output
    指令缓存.aspx页面或.ascx控件,也可以使用ASP.NET缓存机制(
    HttpContext.Current.cache
    )将对象放在那里。这样,可以减少数据库中的调用数
  • 如果可能的话,更喜欢使用ajax而不是完整的回发。宁愿使用jQuery进行ajax调用,也不要使用UpdatePanel,因为它们会进行完整的回发,所以重量不是很轻
我还建议您了解ViewState的工作原理,以便找到减小其大小的方法


我刚刚发现这是一篇讨论ASP.NET性能的文章,您可能会发现它很有用

谢谢,我计划使用处理程序,而不是web方法和代码隐藏,所以我认为html组件会更好