是否可以为浏览器区分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/