有没有人有任何想法或参考,他们可以指出我有关优化我的ASP .NET应用程序的视图状态?我不想一起关闭它,优化它的主要目标是加快性能,所以我不想运行昂贵的函数来递归地禁用某些控件的viewstate,因为该函数会减慢加载页面的时间会破坏目的。
有什么想法吗?
答案 0 :(得分:9)
以下是一些如何优化通过线路传输的ViewState大小(copied from this answer)的想法:
答案 1 :(得分:6)
除了“不要在你的ViewState
中投入太多”之外,我无法告诉你。
我想寻求优化的地方:
GridViews
,<x>Lists
和Repeaters
。 GridViews
对ViewState
特别不好;你数据绑定所涉及的一切,所以如果你绑定一个特别大的列表,期望ASP.NET为你处理它的分页,你将有一个巨大的ViewState
。解决这个问题的唯一方法是一次只将一个页面绑定到GridView
,但这意味着你必须进行数据端分页,这可能同样痛苦,或者关闭{{ 1}}对于ViewState
,这意味着(可以说)有用的功能,如内联编辑不再可用。
这里没有银弹。
答案 2 :(得分:1)
ViewState是一个客户端状态管理,并成为您的请求和响应数据包的一部分,而大量的视图状态确实会降低您的应用程序性能。优化ViewState性能的一个快速选项是将其保留在服务器端,并仅在需要时使用它。这是有道理的,因为ViewState从未真正用于客户端浏览器端,并且在回发时总是需要在服务器端。您可以使用分布式缓存系统(如AppFabric或NCache)在服务器端存储ViewState,这有助于提高性能。
我亲自与NCache合作,后者为ViewState缓存提供了无代码更改提供程序。
Click here to view the article for ASP.NET View State Caching