【发布时间】:2020-05-30 16:34:32
【问题描述】:
我有一个 Progressive Web App,每次用户打开它时我都需要刷新它。
为此,我已经尝试过:
1) First Option
window.onblur = function() {
window.onfocus= function () {
window.location = self.location;
}
};
2) Second Option
var blurred = false;
window.onblur = function() {
blurred = true;
};
window.onfocus = function() {
blurred && (window.location = self.location);
};
选项 1 的信用:https://stackoverflow.com/a/16406350/11843328
选项 2 的信用:https://stackoverflow.com/a/11313719/11843328
这很好用,但问题是有时当您单击某些内容时,它会再次重新加载。它基本上会通过一些动作连续重新加载 4 次。其他时候它按预期工作,只是重新加载一次,但大多数时候是连续 4 或 5 次。
我需要它在打开(焦点)时重新加载一次。是否有任何替代方案我可以尝试或任何建议将不胜感激!
【问题讨论】:
-
开放是什么意思?你的意思是
onload,比如第一次加载页面的时候?或者你的意思是onfocus,当窗口获得焦点时?对于您的目标是哪个事件有点困惑,但当我知道更多时我会留下答案。 -
@Christian 这是
onfocus -
您不使用 onload 是否有原因?
-
我还注意到你想在 window.onfocus 上执行的那个函数上做什么,因为它只是把 && (window.location = self.location);这没有任何意义。请再看看你的问题?
-
@MosiaThabo 是的,因为我在 iOS PWA 中使用了这个功能,它会缓存打开的应用程序的版本,所以每当你打开应用程序时,你会得到与它一样的状态,因为它是基本上是一个“书签”,所以页面已经加载,这就是为什么 onFocus 在他们“打开”它时工作的原因。
标签: javascript jquery