好的,我有一个ASP.NET应用程序,我正在努力减少页面的开销(我们的用户拥有平均10年的PC).
其中一种方法是移动ViewState服务器端.我们有足够的RAM.
我遵循了最常被引用的模式:http://authors.aspalliance.com/robertb/articles.aspx?articleId = 2
因为它是在7年前编写的,所以我不得不更新一些过时的函数,即RegisterHiddenField到ScriptManager.RegisterHiddenField和ConfigurationSettings.AppSettings到ConfigurationManager.AppSettings.
这似乎工作得相当好,但是一旦我做了AJAX回发,我就会收到错误
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: The state information is invalid for this page and might be corrupted.
Run Code Online (Sandbox Code Playgroud)
我还注意到,每个页面上现在有两个隐藏的"__VIEWSTATE"字段,其中一个是空的,其中一个字段具有我班级的数值.我认为这与问题有关 - 也许AJAX更新试图从空的而不是具有值的那个读取?
有谁知道为什么会出现这个错误?
答案是根本不使用提供的示例.它已经过时了,现在框架本身提供了更好的解决方案.
protected override PageStatePersister PageStatePersister
{
get { return new SessionPageStatePersister(this); }
}
Run Code Online (Sandbox Code Playgroud)
我刚刚将这4行添加到我的BasePage类中,并且instant即时〜大约30%的页面大小减少,并且它与AJAX更新一起工作正常.
| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |