1

我有以下场景,我需要在第一次进入页面或从另一个页面返回时运行一些“代码” 。

Safari 的缓存功能 ( https://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/ ) 导致了这种情况,因为它正在缓存我的页面而不执行任何操作

我按照他们的建议将事件侦听器添加到“pageshow”事件,这样我可以检查该事件是否持续存在,然后运行我需要的。

这个例子基本上是我想要的:

  • 第一页访问...附加监听器 = 酷,我有。
  • 如果我导航出页面并返回(使用 Safari),它将在 pageshow = Cool 上触发我的监听器,我有那个......几乎。
  • 每次我导航回该页面时都应该触发监听器 = 不酷,我的监听器会触发一次。

我正在使用 react 和componentDidMount()是我准备一切的地方:

在此处输入图像描述

它第一次工作..我能够导航出我的页面并返回它+执行我需要的东西。

问题是:第二次重复“导航出我的页面并返回”不会做任何事情..看起来监听器被删除或其他东西。

4

1 回答 1

2

两天后试图找到一种方法......我的同事让我在 'popstate' 上尝试一个监听器。我非常想让“pageshow”监听器工作,以至于我完全忘记了测试那个监听器。它完美地工作:

window.addEventListener('popstate', function(event) {
于 2016-10-03T18:49:38.723 回答