【问题标题】:Forcing a full page load强制加载整页
【发布时间】:2013-05-14 15:28:59
【问题描述】:

当我单击一个不幸位于更新面板中的按钮时,我想加载整个页面。

我可以使用 onclick 或 onclientclick,这意味着我可以使用 ASP.NET 或 JavaScript 来执行整个页面加载。

整页加载是指整个页面(我知道回发是如何工作的)

【问题讨论】:

  • 您可以简单地重定向回同一页面。这将执行新的加载 - 而不是回发。
  • 如果您不首先缓存页面,则不会。如果您的页面包含绝对必须是“新鲜”的信息,那么您不应该缓存它。
  • 您想像新加载还是回发一样触发页面加载?即你想让if (!IsPostBack){...}里面的东西再次在页面上运行吗?

标签: c# javascript jquery webforms pageload


【解决方案1】:

为什么不使用锚点,如果需要,您可以将其样式设置为按钮。

静态

<a href="SomePage.aspx">Reload</a>

或动态

<a href="<%=Request.RawUrl %>">Reload</a>

【讨论】:

    【解决方案2】:

    查看更新面板的触发器。特别是 asp:PostBackTrigger element 可能会解决您的问题,如there

    【讨论】:

      【解决方案3】:

      我们将“整页加载”称为 GET 请求。 GET 请求可以被缓存。我们可以使用允许无缓存 GET 请求的 CTRL + F5 绕过该缓存。在您的情况下,您需要执行没有缓存且不需要用户按 CTRL + F5 的 GET 请求。

      所以设置没有缓存的页面。然后您可以按预期触发 GET 请求。但是,缓存行为取决于浏览器和服务器(服务器可以ignore 没有缓存),浏览器有错误/行为differently

      因此,Microsoft 推荐了一种不设置缓存的方法:

      <HTML>
      <HEAD>
      <META HTTP-EQUIV="REFRESH" CONTENT="5">
      <TITLE> Pragma No-cache </TITLE>
      </HEAD>
      <BODY>
      This is an example of where to place the second header section<br>
      so that the "Pragama, No-Cache" metatag will work as it is supposed to.<br>
      </BODY>
      <HEAD>
      <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
      </HEAD>
      </HTML>
      

      【讨论】:

        【解决方案4】:

        如果您真的想加载整个页面,您是否尝试过使用 response.redirect 来访问页面本身。

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2021-02-28
          • 1970-01-01
          • 2019-10-22
          • 1970-01-01
          • 2012-09-28
          • 2013-05-14
          • 2018-03-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多