【问题标题】:Getting different browser behavior when reloading from browser reload button and reloading from javascript从浏览器重新加载按钮重新加载和从 javascript 重新加载时获得不同的浏览器行为
【发布时间】:2015-07-14 16:44:56
【问题描述】:

当用户点击我网页上的“刷新”按钮时,我的 Web 应用程序出现性能问题。行为如下所示:

$("#reloadbutton").click(function(){
    location.reload();
});

它会重新加载页面需要的所有 CSS、JS 和图像文件。唯一的问题是它对所有其他页面请求都执行此操作,例如单击链接以转到另一个页面。

如果我只是按 F5 按钮,它将重新加载所有 CSS、JS 和图像文件,然后如果我转到另一个页面,一旦我转到另一个页面,它就不会尝试重新加载这些文件页。但是如果我点击页面本身的重新加载按钮,它会在每个页面请求上重新加载所有这些文件,我不希望它这样做。

所以我有一个两部分的问题:

  1. 如何在不让浏览器获取所有 CSS、JS 和图像文件的情况下进行刷新(因为我想尽量减少刷新每个页面所需的时间)?

  2. 为什么我在使用 location.reload() 而不是使用浏览器自己的重新加载按钮时会得到不同的行为?

注意:我目前使用的是最新版本的 Firefox

【问题讨论】:

  • 这可能会有所帮助dslreports.com/forum/…
  • 行为是不同的,因为有不同类型的重新加载,用户通常想要一个,而调用reload() 的网页想要另一个。请注意,即使是脚本化的 reload() 也需要一个布尔参数来改变它的重新加载类型!

标签: javascript firefox


【解决方案1】:

使用

$("#reloadbutton").live("click",function(){
    location.reload();
});

你可以通过每隔几秒进行一次 ajax 调用来做到这一点

【讨论】:

    【解决方案2】:
    $("#reloadbutton").click(function(){
      location.reload(false);
    });
    

    根据Mozilla developer networklocation.reload();可以带一个参数。当它为真时,location.reload(true);,它会导致页面总是从服务器重新加载。如果为 false、location.reload(false); 或未指定,则浏览器可能会从其缓存中重新加载页面。

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2013-07-28
      • 2017-11-08
      • 2023-04-09
      • 2018-05-26
      • 2012-11-04
      • 2014-08-09
      • 2018-03-14
      • 2016-03-26
      相关资源
      最近更新 更多