2

我的问题有两个部分。首先也是最重要的是,我想知道为什么,因为我自己对正在发生的事情的理解。其次,所有可能的选择是什么。

出于演示目的,假设我有以下 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 的页面,我很想听听是否有任何实际的替代方案

谢谢!

狮子座

4

0 回答 0