You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面反复加载问题:导航栏加载后页面持续刷新的技术咨询

解决页面持续刷新的问题

看起来你的代码陷入了无限重定向循环,原因很直白:每次页面加载时,只要newOption = Option.Opt1的条件成立,你就会强制顶级窗口跳转到userHome.aspx;但跳转到这个页面后,Page_Load事件又会再次触发,重复执行同样的重定向逻辑,最终导致页面不停刷新。

修复方案一:前端判断避免重复重定向

我们可以在前端脚本里添加判断,确认当前顶级窗口的URL已经不是目标页面时,再执行重定向:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim path As String = HttpContext.Current.Request.Url.PathAndQuery
    Dim newOption = cSession.User.p_Option
    Dim targetUrl = ResolveUrl("~/userHome/userHome.aspx")
    
    If newOption = Option.Opt1 Then
        Session("lastUrl") = path
        Me.ClientScript.RegisterClientScriptBlock(
            Me.GetType, 
            "RedirectScript", 
            String.Format("if(window.top.location.href.indexOf('{0}') === -1) {{ window.top.location = '{0}'; }} ", targetUrl), 
            True
        )
    End If
End Sub

修复方案二:后端直接校验当前页面

如果你更信任后端逻辑,也可以直接在后端对比当前请求的页面是否是目标页面,从根源上阻止循环:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim path As String = HttpContext.Current.Request.Url.PathAndQuery
    Dim newOption = cSession.User.p_Option
    Dim targetPath = VirtualPathUtility.ToAbsolute("~/userHome/userHome.aspx")
    
    ' 只有当条件满足,且当前页面不是目标页面时才执行重定向
    If newOption = Option.Opt1 AndAlso Not path.Equals(targetPath, StringComparison.OrdinalIgnoreCase) Then
        Session("lastUrl") = path
        Me.ClientScript.RegisterClientScriptBlock(
            Me.GetType, 
            "RedirectScript", 
            String.Format("window.top.location = '{0}'; ", ResolveUrl("~/userHome/userHome.aspx")), 
            True
        )
    End If
End Sub

方案说明

  • 前端方案通过JS判断顶级窗口的URL是否包含目标页面路径,只有当不匹配时才触发跳转,避免重复执行重定向。
  • 后端方案直接在服务器端校验当前请求的页面路径,从逻辑上跳过已经在目标页面时的重定向操作,更安全可靠。

你可以根据自己的场景选择其中一种方案,两种都能有效解决页面持续刷新的问题。

内容的提问来源于stack exchange,提问作者Person1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:37:28