【问题标题】:When I press the browser back button or mouse back button the Javascript seems to be cached in Wordpress and it doesn't execute the code当我按下浏览器后退按钮或鼠标后退按钮时,Javascript 似乎被缓存在 Wordpress 中并且它不执行代码
【发布时间】:2022-01-10 15:08:13
【问题描述】:

每当我按下https://automotive-electronics.nl 上的后退按钮时,页面加载器都不会隐藏。我发现这是因为 javascript 似乎被缓存了(如果有这样的事情)。我在 javascript 文件的顶部添加了一个控制台日志,它将“测试”记录到 JS 控制台。每当我正常加载页面时,它都会记录“测试”。单击链接时,它还会记录测试,返回时仍会记录测试,因此一切似乎都很好。然而,回去的时候发生了一些奇怪的事情:

对我来说,控制台的登录似乎是即时的,因此我觉得有些不对劲,所以我尝试了以下操作:

  1. 转到主页 -> 测试已记录,所以这很好
  2. 清除 JS 控制台 -> 不再记录测试,这很有意义,因为我刚刚清除了控制台
  3. 转到除主页以外的任何页面 -> 记录测试,这很好
  4. 按浏览器的鼠标后退按钮,将带您返回主页 -> 未记录测试,这不好

由于未清除控制台时记录了测试,而清除控制台时未记录测试,这使我相信 JS 以某种方式被缓存,但是,我不知道如何解决此问题。我还发现这种情况并非 100% 发生,但确实发生得太频繁了。我正在使用 Google Chrome 进行测试。有人可以帮助我吗?在此先感谢:)

更新: 经过一些测试,它似乎只在最近访问过初始页面和第二个页面时才会发生(我假设它们都应该在您的缓存中才能工作)。

【问题讨论】:

  • 在 Chrome 中为我工作 - 如果您在控制台中引用 test
  • console.log('test') 在页面的哪个位置?外部 JS?
  • 嗨@mplungjan,console.log 位于名为“custom.js”的文件的第一行。 wordpress 主题将此文件用于所有特定于主题的 JS。加载器返回时是否也会消失?
  • 我在最初的帖子中添加了一个更新,它应该可以帮助您复制问题。再次感谢您的调查!

标签: javascript wordpress


【解决方案1】:

如果其他人遇到这个问题;我已经通过添加来修复它 window.onunload = 函数(){};到文件的第一行,如After travelling back in Firefox history, JavaScript won't run 中所建议的那样。感谢 mplungjan 花时间和我一起研究这个问题!

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 2023-03-08
    • 2017-06-29
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2017-01-18
    • 2014-04-27
    • 1970-01-01
    相关资源
    最近更新 更多