是否可以为浏览器区分F5或“打开”(单击链接,将URL粘贴到空白页或新标签中,等等)?

为什么?因为我想改善用户界面的人体工程学。在我的应用程序中,一些昂贵的计算用于呈现页面。因此页面被缓存,页面“重新计算”上还有其他按钮。

当有完全相同的标准“ F5”按钮时,我不喜欢额外的“重新计算”按钮。

我同时控制服务器和客户端JS,是否有任何方法可以通知“ F5”事件?

重要的是要检测所有“ F5”事件,不要错过它。但是,有时(有时但不经常)有其他错误的“ F5”事件是可以的-当打开页面被错误地检测为“ F5”时。

最佳答案

就您而言,使用sessionStorage听起来是您的最佳选择。

就像是:

var calculatedValues = (function() {
  var savedValues = sessionStorage.getItem("values");
  if (!savedValues) {
    // Do calculations
    var values = {
      result: 10
    };

    savedValues = JSON.stringify(values);
    sessionStorage.setItem("values", savedValues);
  }
  return JSON.parse(savedValues);
}());


sessionStorage对于每个窗口都应该是唯一的-转到其他窗口下的页面将看不到任何值并重新计算,但是按F5不会。

在链接上使用Open in new tab时,某些浏览器会将会话值从一个窗口复制到另一个窗口,但是在这种情况下,这似乎不是问题。

关于javascript - 区分F5或打开浏览器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23164888/

10-12 07:13