昨晚我在Chrome中打开了我的网站,然后关闭了该标签,但没有关闭浏览器。今天,我无法在新标签页中打开网站,因为jQuery(不使用CDN)遇到语法错误:输入意外结束。
无论我刷新多少次,我的网站始终会遇到此错误。但是硬刷新后,该错误不再发生。
这个问题在最近几个月中屡屡发生。
我检查了Chrome devtool,它说我的jquery.min.js是从内存缓存中加载的。而且它不是一个完整的文件,仅包含jquery库的一部分。这就是为什么我会出现语法错误。
我从Google做过一些研究:
内存缓存的生存期附加到呈现过程的生存期,该过程大致对应于一个制表符。
因此,可以肯定的是,如果我创建一个新标签来访问我的网站,则不应从内存缓存中加载jQuery。
如果我在新标签页中访问网站,我希望浏览器不会再次从内存中加载文件。
有什么办法可以找到问题源并进行修复?
编辑(2019-05-13):
今天再次遇到此错误,但幸运的是,我发现新观点似乎有助于解决此问题。
查看状态码是206部分内容(来自内存缓存)。
我不知道为什么我的请求标头包含“ Range”字段。
答案 0 :(得分:0)
您无法在浏览器中检测到newtab并加载jquery.min.js,但可以通过将时间戳记添加到lib后缀中来避免从缓存加载,如下所示。
http://yoursite.com/lib/js/jquery.min.js?1557301884
您可以通过两种方式实现这一目标
案例:1 如果您使用服务器端页面呈现方式(PHP,JSP),只需打印时间戳记
案例:2 如果客户端意味着您需要执行一些JavaScript任务