1

我昨晚在 Chrome 中打开了我的网站,然后关闭了该选项卡,但没有关闭浏览器。今天我无法在新选项卡中打开我的网站,因为 jQuery(不使用 CDN)遇到语法错误:输入意外结束。

无论我刷新多少次,我的网站总是会出现此错误。但是硬刷新后错误没有再次发生。

这个问题在最近几个月发生了很多次。

我检查了 Chrome devtool,它说我的 jquery.min.js 是从内存缓存中加载的。而且它不是一个完整的文件,只包含 jquery 库的一部分。这就是我收到语法错误的原因。

我从谷歌做了一些研究:

内存缓存的生命周期附加到渲染进程的生命周期,大致对应一个选项卡。

因此,如果我创建一个新选项卡来访问我的站点,按理说,jQuery 不应该从内存缓存中加载。

如果我在新选项卡中访问站点,我希望浏览器不会再次从内存中加载我的文件。

我能做些什么来找到问题的根源并解决它吗?

编辑(2019-05-13):

今天再次遇到这个错误,但幸运的是,我发现新点似乎对这个问题有帮助。

这是那个请求: 请求信息

请参阅状态代码是 206 Partial Content(来自内存缓存)。

而且我不知道为什么我的请求标头包含“范围”字段。

4

1 回答 1

-1

您无法在浏览器中检测到 newtab 并加载您的 jquery.min.js,但您可以通过在 lib 的后缀中添加时间戳来避免从缓存中加载,如下所示。

http://yoursite.com/lib/js/jquery.min.js?1557301884

您可以通过两种方式实现此目的

  • 案例:1如果您使用服务器端页面渲染方式(PHP,JSP)只需打印时间戳

  • 案例:2如果客户端意味着你必须做一些 javascript 的事情

于 2019-05-08T07:57:33.820 回答