【问题标题】:How to refresh page when hitting back button on browser (IE,Chrome,Firefox Safari)?在浏览器(IE、Chrome、Firefox Safari)上点击返回按钮时如何刷新页面?
【发布时间】:2011-10-13 14:10:13
【问题描述】:

大多数浏览器从缓存重新加载页面,并且不执行往返服务器刷新。 我在 Page_Load 上添加了 Response.AppendHeader("Cache-Control", "no-store") 但不适用于 Chrome、Firefox、Safari。 在浏览器(IE、Chrome、Firefox Safari)上点击返回按钮时如何刷新页面?

【问题讨论】:

    标签: asp.net browser cross-browser


    【解决方案1】:

    强制执行此行为可能不是一个好主意,因为用户希望看到他们之前看到的内容,而不是刷新后的视图。如果这是 Chrome/Firefox/Safari 的行为,那么用户可能希望这种行为,因为他们选择了那个浏览器。如果他们想要刷新视图,可以自行刷新。

    也就是说,我经常在浏览器中看到使用 Javascript 完成此操作。如果您看到第二次加载页面,您可以挂钩页面加载事件并手动刷新。但是如果客户端使用 noscript,或者不支持 Javascript,那么你就不走运了。另外,请注意正确重新加载,以免用户每次单击“返回”时都被带到新页面并陷入快速单击反应的战斗中。

    【讨论】:

    • 我同意你的观点,但在某些情况下你需要手动刷新页面。这取决于网页的业务逻辑。有时我们的数据需要在用户按下后退按钮后显示更新版本。
    • 应该是解决问题的办法
    【解决方案2】:

    这将适用于我假设的您的 c# 代码。 这些是我的建议,按照建议从多到少的顺序排列。

    Response.Cache.SetNoStore();
    
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    
    Response.AppendHeader("pragma","no-cache");
    
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多