当前位置:  开发笔记 > 编程语言 > 正文

为什么预加载链接不适用于JSON请求?

如何解决《为什么预加载链接不适用于JSON请求?》经验,为你挑选了2个好方法。

我网站上的JavaScript加载了几个JSON来初始化自己.

我想预加载它们,当JavaScript将在其上启动Ajax请求时,它们将立即加载.

link为此存在新标签.

我试着用它来加载像这样的JSON:


但是,Chrome似乎加载了两次并在控制台中显示警告:

资源test.json是使用链接预加载预加载的,但是在窗口加载事件的几秒钟内没有使用.请确保没有预装任何东西.

所以似乎preload对JSON不起作用.实际上,我在规范中没有找到对JSON的引用.

这是正确的还是我做错了?



1> J.P. Duvet..:

根据https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content,您必须添加as="prefetch"JSON文件.所以你的代码变成了

所有现代浏览器都支持它,并且如果在几秒钟内没有使用该资源,则会收到警告消息,因为在这种情况下"延迟",双重加载等"预加载"它会适得其反.

与预测未来的导航并不广泛支持不同.

关于此的Chrome插图文章:https://medium.com/reloading/preload-prefetch-and-priorities-in-chrome-776165961bbf



2> Dan..:

如果您和我有同样的问题,则可能是通过发送您的响应,使用发送Vary: Accept了预加载请求,使用发送Accept: */*了fetch / xhr请求Accept: application/json

似乎Accept:无法更改预加载行为(叹息),因此您必须删除Vary: Accept或使用匹配的Accept:标头发出fetch / xhr请求。

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有