Asp.net 页面方法会在用户离开页面后完成执行吗?

Asp.net 页面方法会在用户离开页面后完成执行吗?,asp.net,pagemethods,Asp.net,Pagemethods,我在想。我试着用谷歌搜索答案,但他们不给我答案。谢谢。是的,ASP.NET AJAX页面方法将在用户离开页面后继续执行,但结果(如果有)将不会返回到页面,因为发起请求的页面现在已不存在 例如: Default.aspx页面上的代码隐藏: public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { } [WebMethod] p

我在想。我试着用谷歌搜索答案,但他们不给我答案。谢谢。

是的,ASP.NET AJAX页面方法将在用户离开页面后继续执行,但结果(如果有)将不会返回到页面,因为发起请求的页面现在已不存在

例如:

Default.aspx页面上的代码隐藏:

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public static string GetHelloWorld()
    {
        Thread.Sleep(20000);
        return "Hello World";
    }

    protected void ButtonContactRedirect_OnClick(object sender, EventArgs e)
    {
        Response.Redirect("Contact.aspx");
    }
}
<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "POST",
            url: "Default.aspx/GetHelloWorld",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert(msg);
            }
        });
    });
</script>
<asp:Button runat="server" ID="ButtonContactRedirect" Text="Go to Contacts Page" OnClick="ButtonContactRedirect_OnClick"/>
Default.aspx
页面上的标记:

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public static string GetHelloWorld()
    {
        Thread.Sleep(20000);
        return "Hello World";
    }

    protected void ButtonContactRedirect_OnClick(object sender, EventArgs e)
    {
        Response.Redirect("Contact.aspx");
    }
}
<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "POST",
            url: "Default.aspx/GetHelloWorld",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert(msg);
            }
        });
    });
</script>
<asp:Button runat="server" ID="ButtonContactRedirect" Text="Go to Contacts Page" OnClick="ButtonContactRedirect_OnClick"/>

当您运行程序并加载页面时,如果您在20秒钟内没有单击该按钮,那么AJAX成功回调将触发,并显示一个警报,显示返回的字符串对象。如果您在20秒睡眠结束前按下按钮,则会发生
重定向()
,并加载
Contacts.aspx
页面,但睡眠结束后会点击断点;但是返回的
Hello World
字符串将丢失,因为AJAX上下文绑定到
Default.aspx
页面,而不是
Contacts.aspx
页面,该页面现在已不存在。

啊,我现在明白了。非常感谢。