我有以下场景,我需要在第一次进入页面或从另一个页面返回时运行一些“代码” 。
Safari 的缓存功能 ( https://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/ ) 导致了这种情况,因为它正在缓存我的页面而不执行任何操作。
我按照他们的建议将事件侦听器添加到“pageshow”事件,这样我可以检查该事件是否持续存在,然后运行我需要的。
这个例子基本上是我想要的:
- 第一页访问...附加监听器 = 酷,我有。
- 如果我导航出页面并返回(使用 Safari),它将在 pageshow = Cool 上触发我的监听器,我有那个......几乎。
- 每次我导航回该页面时都应该触发监听器 = 不酷,我的监听器会触发一次。
我正在使用 react 和componentDidMount()是我准备一切的地方:
它第一次工作..我能够导航出我的页面并返回它+执行我需要的东西。
问题是:第二次重复“导航出我的页面并返回”不会做任何事情..看起来监听器被删除或其他东西。