私の質問には 2 つの部分があります。まず、最も重要なことは、何が起こっているのかを自分自身で理解するために、WHY を知りたいということです。第二に、可能なすべての代替手段は何ですか。
デモンストレーションの目的で、button1 のクリック時に次のコード ビハインドを含む次の ASP ページがあるとします。
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 指向であり、ページがすべてのデータをロードしているときにメニュー システム全体が約 1 秒間ページを覆うと非常に目立ちます。
回避策としては、スクリプト マネージャーを追加してページを ajax 対応にすることで動作することがわかっている回避策が既に 1 つあります。読み込み中のテキストが表示され、データが返されたときに、メニューの悪ふざけはありません。これが、私の投稿が主になぜこれが起こっているのかを理解することである理由です。しかし、もし私がajaxを有効にしたくないページを持っているなら、実際の代替案があるかどうか聞いてみたいです.
ありがとう!
レオ