ASP.NET母版页和视图状态
我希望提高我的网站的性能,不是因为它表现不好,而是作为一个一般性的练习。对于asp.net站点,通常建议尽可能删除viewstate。我相信这可以由页面上的每个控件单独完成,也可以为整个页面完成ASP.NET母版页和视图状态,asp.net,master-pages,viewstate,Asp.net,Master Pages,Viewstate,我希望提高我的网站的性能,不是因为它表现不好,而是作为一个一般性的练习。对于asp.net站点,通常建议尽可能删除viewstate。我相信这可以由页面上的每个控件单独完成,也可以为整个页面完成 我的问题是,如果禁用页面视图状态,这会停止母版页上控件的视图状态(据我所知,母版页实际上是页面上的控件) 是,页面是页面流的发起人。因此,禁用页面的viewstate会使viewstate呈现脱离OnInit进程。一个更好的问题是,为什么禁用母版页的viewstate也会这样做?在优化网站之前,请先简要
我的问题是,如果禁用页面视图状态,这会停止母版页上控件的视图状态(据我所知,母版页实际上是页面上的控件) 是,页面是页面流的发起人。因此,禁用页面的viewstate会使viewstate呈现脱离OnInit进程。一个更好的问题是,为什么禁用母版页的viewstate也会这样做?在优化网站之前,请先简要说明一下,您是否已通过确保所有文件在发送之前都经过gzip处理来优化服务器 如果不是这样的话,在你开始修改页面之前,这会给你一个很好的提升
有一种简单的方法可以缩小所有viewstate 第一步。创建如下所示的新类:
Imports System
Imports System.Web.UI
Public Class SessionPageStateAdapter
Inherits System.Web.UI.Adapters.PageAdapter
Public Overrides Function GetStatePersister() As System.Web.UI.PageStatePersister
Return New SessionPageStatePersister(Page)
End Function
End Class
第二步。将App\u浏览器
文件夹添加到项目中
第三步。在新的App\u Browsers
文件夹中,添加一个新的default.browser
文件,如下所示。
现在运行页面时,您应该会发现viewstate大小已降至几个字节。SessionPageStateAdapter类在将viewstate提供给浏览器之前拦截viewstate,并在会话状态下将其保留在服务器上。仍然被发送到客户端的viewstate只是一个标识符,当页面返回到服务器时,该标识符用于重建原始viewstate。“过早优化是万恶之源”您可能会发现这篇文章很有帮助:那么这就是“过早优化是万恶之源”?:-P