gpt4 book ai didi

c# - AutoPostBack:真与假

转载 作者:行者123 更新时间:2023-11-30 19:10:22 24 4
gpt4 key购买 nike

开始之前,我已经看过this question about a very similar topic (以及 this onethis one ),没有一个能完全回答我的问题。我已经理解这些问题/答案中提出的概念,但我还有更多问题。

A) 如果您有多个带有 AutoPostBack="false" 的控件并且您在回发之前更改了其中的一些控件,会发生什么情况?以下面的简短示例为例(假设页面所需的所有其他内容都已正确且简单地编写;例如,Page_Load):

默认.aspx:

<asp:DropDownList ID="ddlFoo" runat="server" 
OnSelectedIndexChanged="ddlFoo_Changed" AutoPostBack="false" >
<asp:ListItem Text="a" />
<asp:ListItem Text="b" />
<asp:ListItem Text="c" />
</asp:DropDownList>
<asp:DropDownList ID="ddlBar" runat="server"
OnSelectedIndexChanged="ddlBar_Changed" AutoPostBack="false" >
<asp:ListItem Text="1" />
<asp:ListItem Text="2" />
<asp:ListItem Text="3" />
</asp:DropDownList>
<asp:Button ID="btnQux" runat="sever" Text="Click for PostBack" OnClick="btnQux_Click"

Default.aspx.cs:

protected void ddlFoo_Changed(object sender, EventArgs e)
{
Response.Write("ddlFoo changed to " + ddlFoo.Text + ". ");
}
protected void ddlBar_Changed(object sender, EventArgs e)
{
Response.Write("ddlBar changed to " + ddlBar.Text + ". ");
}
protected void btnQux_Changed(object sender, EventArgs e) { }

现在,假设您将 ddlFoo 更改为 3,然后将 ddlBar 更改为 b。然后,您单击 btnQux。单击后,您会从 Response.Write 获得以下输出:

ddlBar changed to b. ddlFoo changed to 3. 

为什么会这样? OnSelectedIndexChanged 方法是否被放入堆栈中以便在回发发生时调用?

B) 当我使用这种方法并为我的大部分控件设置 AutoPostBack="false" 时,为什么我的网页加载速度更快?具体来说,我这样做是为了
CheckBox
DropDownListGridView 中的 TextBox,它检索了约 1200 行和 27 列的数据,耗时 10 秒在 VS2008 Debug模式下与之前的 310s 相比。为什么加载/刷新时间会快得多?

编辑:我今天下午早些时候发布了代码,旧的 (AutoPostBack="true") 和新的 ( AutoPostBack="false") 版本。我认为调试器可能做了一些额外的事情,导致加载时间大幅增加。改写问题 B) 的更好方法可能是:调试器可能一直在做什么导致加载时间出现如此大的跳跃?

最佳答案

警告:我不是 ASP.NET 专家...如果结果是垃圾,我会删除它:)

A) 我相信只要回发结束,您就会看到所有控件的新值,包括所有更改事件,正如您所描述的那样。毕竟这些值已经改变了——AutoPostBack 只会影响时间(当然还有回发是否发生)。

B) 在所有控件上随 AutoPostBack = True 提供的 HTML 中有更多的 Javascript,但不足以产生巨大的差异。正如您在编辑中指出的那样,无论如何这看起来都是一个暂时性问题 - 如果没有更多诊断,我们无法真正解释暂时性问题。

关于c# - AutoPostBack:真与假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com