代码之家  ›  专栏  ›  技术社区  ›  Tom

响应重定向前的asp.net延迟

  •  1
  • Tom  · 技术社区  · 14 年前

    是否可以将asp.net页中的response.redirect延迟5秒?

    类似delay.response.redirect(“myURL.aspx”)

    我不想使用元刷新如果我可以帮助它,但如果这是唯一的方法或最好的方法,请让我知道。

    7 回复  |  直到 14 年前
        1
  •  2
  •   Artemiy    14 年前

    如果你发布到服务器上,就再也无法影响客户端了——服务器只能等待。而在web服务器上睡觉是非常糟糕的-耗尽线程池,不利于性能。

    你应该做的是拖延客户的时间。或者,您可以使用AJAX发布到该页面-这是我想要的。使用ajax发布到服务器,然后获取响应并在更改位置之前等待5秒(javascript格式) 您甚至可以从服务器(从ajax调用返回的数据)读取新位置

        2
  •  5
  •   Shadow Wizard    11 年前
    ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "click", "alert('Cliente cadastrado com sucesso.'); setTimeout(function(){window.location.href ='../../Default.aspx'}, 3000);", true);
    
        3
  •  3
  •   Jose G    9 年前
    Response.AddHeader("REFRESH", "5;URL=http://redirectPage.aspx")
    

    5=延迟(秒)。

        4
  •  1
  •   Rahul Soni    14 年前

        5
  •  0
  •   Craig Myles    12 年前

    我在客户机上创建了一个超链接,并从服务器上控制这个超链接的导航。然后,我等待客户端加载页面,从中提取url,并在一段时间后使用javascript启动重定向(您可以等待动画完成):

    顾客

    <asp:Content ID="Head" ContentPlaceHolderID="ContentHead" runat="server">
        <script type="text/javascript">
            $(document).ready(function () {
                redirectUrl = $('#mainbody').find('a').attr('href');
                setTimeout(function(){
                    window.location.replace(redirectUrl);
                }, 5000);
            });
        </script>
    </asp:Content>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <div id="mainbody">
            <asp:HyperLink ID="redirectUrl" runat="server" Visible="false" />
        </div>
    </asp:Content>
    

    redirectUrl.NavigateUrl = "ValentinesDay.aspx";
    

    您可以用javascript硬编码重定向URL,但我需要能够从服务器控制它。

        6
  •  0
  •   Cyberspark13    11 年前

    几秒钟?

    类似delay.response.redirect(“myURL.aspx”)

    <%
    response.write("<body onload=""myFunction()""><script>function myFunction()_
    {setTimeout(function newDoc()_
    {window.location.assign(""http://www.stackoverflow.com"")},5000);}_
    </script>")
    %>
    
        7
  •  0
  •   GlennG    8 年前

    对于非客户端解决方案(即依赖浏览器实现延迟的解决方案),可以创建包含服务器端延迟的代理页,然后重定向到最终目标页。

    myPostPage.aspx 处理数据然后调用 response.redirect("myProxyPage.aspx?d=myDestinationPage.aspx", false)

    myProxyPage.aspx 可以有定时器, System.threading.Thread.Sleep("5000") ,然后重定向到目标页: response.redirect(request.querystring("d"), false)