0

我在加载表单时遇到问题。在 IE8 中加载大约需要 15 秒。有什么方法可以显示前 50 个控件并在后台加载另一个控件,以便用户可以访问前 50 个控件,这些控件已加载,而其余的控件正在加载到屏幕上,有人可以帮我吗?

谢谢, 苏拉杰

4

2 回答 2

1

要发送页面的一部分,您可以使用页面Flush()内部的某些位置,例如:

...html code...
<%Response.Flush();%>
...rest of html code...

但是如果延迟是在代码后面,例如在查询您的数据库时,那么刷新在此时无济于事,您还需要在flush()例如之后移动一些计算(如果可能的话):

...html code...
<%
 Response.Flush(); 
 // Call CodeBehind Function that takes some time
 MoreCalculations();
 %>
...rest of html code...
于 2013-01-21T10:27:29.457 回答
0

那是大量的控件。

您的主要问题将是ViewState. 看看你的页面大小。这将是几 MB。不是一个好的网络设计。

您可以采取的步骤:

  1. 重新设计您的页面以使用更少的控件。您可以使用会话来维护值并将输入表单分解为几个较小的表单。

  2. 您可以将其ViewState移至会话中。这会给你一些安慰。SessionPageStatePersister为此使用。

  3. 将隐藏控件设置为Visible="False"。通过 CSS 或 javascript 隐藏的控件仍然会占用带宽。将控制设置为Visible="False"告诉服务器不要渲染它们。这样做的缺点是,如果需要显示它们,则必须回发到服务器。

  4. 对于不会在您的页面生命周期内更改的控件,请将ViewStateMode="Disabled". 这将确保他们不会将其内容写入 ViewState。

于 2013-01-21T10:42:12.243 回答