我有一个ASP.NET Web表单,它有几千个复选框控件(在父/子层次结构中)。该页面加载大约需要4秒钟。我正在尝试提高性能,以便页面加载只需1-2秒。在进行一些挖掘之后,看起来复选框控件正在生成一个巨大的视图状态对象(HTML文件中几乎为1MB)。如果我使用原始HTML复选框,页面渲染速度非常快(我认为这是因为没有创建视图状态)。我尝试了原始HTML chechbox路由,但是使用dopostback从JS调用ASP.NET方法时遇到了麻烦。无论如何,我的主要目标是消除复选框上的viewstate。我试过通过在复选框控件和ASPX页面上禁用viewstate来尝试这样做。无论我使用什么组合,viewstate对象仍然被创建(正如我所说,它是巨大的)。我甚至试图在触发的所有重大事件中清除代码中的viewstate对象。清除视图状态仍然没有运气。关于我可以做什么来禁用复选框上的viewstate以避免看起来像是导致性能瓶颈的任何建议?
答案 0 :(得分:0)
保持页面不变的一种方法是使用占位符扭曲复选框并为此设置EnableViewState="false"
。
<asp:PlaceHolder runat="server" EnableViewState="false">
<asp:CheckBox runat="server" ID="cbOne" />
</asp:PlaceHolder>
其他方法是将它们全部放在自定义控件中,并为此控件设置EnableViewState="false"
。