预加载大型 JSON 文件
Preload large JSON file
我有一个双页注册渠道,其中第二页需要一个相当大的 JSON 文件 (400Kb) 用于自动完成字段。直接为页面加载文件会导致用户体验出现小但可能会中断的延迟,因此我正在考虑在第一页上预加载 JSON,并将其缓存并准备好用于第二页.
仅出于缓存目的预加载 JSON 文件的 preferred/elegant 方法是什么?根据 can-i-use link rel=preload
还没有很好的浏览器支持。
我能想出的最简单的解决方案是在第一页加载它,如果在 DOM 加载后完成,该页面不会出现中断。
有了这个,它将被缓存,并且在调用第二页时应该不会延迟加载
<head>
<script>
(function(d) {
d.addEventListener('DOMContentLoaded', function() {
var s = d.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', json.js);
s.setAttribute('defer', true);
d.head.appendChild(s);
})
})(document);
</script>
</head>
我有一个双页注册渠道,其中第二页需要一个相当大的 JSON 文件 (400Kb) 用于自动完成字段。直接为页面加载文件会导致用户体验出现小但可能会中断的延迟,因此我正在考虑在第一页上预加载 JSON,并将其缓存并准备好用于第二页.
仅出于缓存目的预加载 JSON 文件的 preferred/elegant 方法是什么?根据 can-i-use link rel=preload
还没有很好的浏览器支持。
我能想出的最简单的解决方案是在第一页加载它,如果在 DOM 加载后完成,该页面不会出现中断。
有了这个,它将被缓存,并且在调用第二页时应该不会延迟加载
<head>
<script>
(function(d) {
d.addEventListener('DOMContentLoaded', function() {
var s = d.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', json.js);
s.setAttribute('defer', true);
d.head.appendChild(s);
})
})(document);
</script>
</head>