【问题标题】:location.reload() doesn't work on remote serverlocation.reload() 在远程服务器上不起作用
【发布时间】:2017-04-23 18:05:33
【问题描述】:

我有一个使用 delay() 和 setInterval() 函数的 javascript 动画。一切正常,但当用户打开另一个浏览器选项卡并返回上一个选项卡时,动画元素会变得疯狂。

作为一种解决方案,我需要在每次用户再次访问动画选项卡时重新加载页面,似乎解决方案是here

但我看到重新加载页面仅适用于本地主机。相同的代码在远程服务器上不起作用,即重新访问页面不会重新加载页面。

代码如下:

var hidden, visibilityChange; 
if (typeof document.hidden !== "undefined") {
  hidden = "hidden";
  visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
  hidden = "msHidden";
  visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
  hidden = "webkitHidden";
  visibilityChange = "webkitvisibilitychange";
}

function handleVisibilityChange() {
  if (!document[hidden]) {location.reload();}
};

document.addEventListener(visibilityChange, handleVisibilityChange, false);

【问题讨论】:

  • 可能浏览器正在缓存页面,所以重新加载没有任何作用。
  • 重新加载页面只是为了处理动画问题?!您应该阅读:what-is-the-xy-problem 至少,如果此动画是使用 jQuery 处理的,则改为暂停/重新启用它,但不要重新加载页面
  • @Barmar,缓存与否,如果页面重新加载,动画应该从头开始。
  • 你可以试试window.location.reload(true);
  • @A.Wolff,我的问题不是关于动画问题,而是关于 location.reload() 问题。动画只是重新加载的一个原因。

标签: javascript jquery reload


【解决方案1】:

我无法解释,但似乎解决方案是

location.href = location.href;

而不是

location.reload();

页面在本地和远程服务器上重新加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-03
    • 2015-10-15
    • 2015-12-28
    • 1970-01-01
    • 2022-01-12
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多