我的问题有两个部分。首先也是最重要的是,我想知道为什么,因为我自己对正在发生的事情的理解。其次,所有可能的选择是什么。
出于演示目的,假设我有以下 ASP 页面,在 button1 点击后面有以下代码:
ASP:
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Text="TEST" Value="TEST">
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST">
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST">
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
<asp:MenuItem Text="TEST" Value="TEST"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
<asp:Button ID="Button1" runat="server" Text="Button"
onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
后面的代码:
Label1.Text += "<table>";
for (int i = 0; i < 20000; i++)
{
Label1.Text += "<tr><td>random rendered html stuff<td></tr>";
}
Label1.Text += "</table>";
当您单击使页面上出现大量新 html 的按钮时,您会注意到的第一件事(它发生得有点快但足够慢以至于非常明显)是所有菜单内容都垂直显示在屏幕上,包括所有子菜单项。为什么会发生这种情况?这就是菜单总是显示的方式,但是当计算机没有很多工作要做时,我们的眼睛却没有注意到?我目前正在处理的页面可能有 500 行动态创建,但也有很多 css 和动画正在进行。该页面的菜单系统也非常面向 css,当页面加载所有数据时,当整个菜单系统覆盖页面大约一秒钟时,这一点非常明显。
至于变通方法,我已经有一个我知道可以解决的工作,那就是添加一个脚本管理器并启用页面 ajax。加载文本显示,当数据返回时没有菜单恶作剧。这就是为什么我的帖子主要是为了了解为什么会发生这种情况。但是,如果我有一个我不想启用 ajax 的页面,我很想听听是否有任何实际的替代方案
谢谢!
狮子座