关于优化我的.NET应用程序的视图状态,有没有人可以给我一些建议或参考?我不想一起关闭它,优化它的主要目标是提高性能,所以我不想运行一个昂贵的函数来递归地禁用某些控件的视图状态,因为该函数会减慢页面的加载时间,从而与目的不符。
有什么想法吗?
发布于 2009-12-04 07:28:38
除了“不要在你的ViewState中放太多”之外,我没有什么可以告诉你的。
我会寻找优化的地方:
GridViews、<x>Lists和data display控件)GridViews对ViewState特别不好;您的所有数据都会进入其中,所以如果您绑定了一个特别大的列表,希望ASP.NET为您处理它的分页,那么您将拥有一个巨大的ViewState。解决这个问题的唯一方法是一次只将一个页面绑定到GridView,但这意味着您必须在数据端进行分页,这可能同样痛苦,或者关闭GridView的ViewState,这意味着(可以说)像内联编辑这样的有用功能将不再可用。
这里没有银弹。
发布于 2009-12-05 22:00:19
以下是如何优化通过网络传输的ViewState (copied from this answer)的大小的一些想法:
针对不需要的控件的
,但也有其他解决方案不使用会话SesionPageStatePersister将ViewState存储到磁盘
发布于 2018-04-03 20:52:53
ViewState是一种客户端状态管理,并成为请求和响应数据包的一部分,而繁重的视图状态确实会降低应用程序的性能。优化ViewState性能的一个快速选择是将其保留在服务器端,并仅在需要时使用它。这是有意义的,因为ViewState从来不会真正在客户端浏览器端使用,而在回发时总是需要在服务器端使用。您可以使用分布式缓存系统(如AppFabric或NCache )在服务器端存储ViewState,这将有助于提高性能。
我曾亲自使用过NCache,它有一个用于ViewState缓存的无代码更改提供程序。
Click here to view the article for ASP.NET View State Caching
https://stackoverflow.com/questions/1843784
复制相似问题