如何解决rel="preload" 如何影响 window.onload?
使用 rel="preload" 指令如何影响 window.onload 事件?假设我有以下代码:
!DOCTYPE html>
<html>
<head>
<script>
window.onload = () => {
console.log("page loaded")
};
</script>
<link rel="preload" as="image" href="othersite.com/myimg.jpg" />
<title>Website</title>
</head>
<body>
<h1>Heading for the content below</h1>
<p>Text text text</p>
<img src="othersite.com/myimg.jpg" />
</body>
</html>
是否有可能在使用 rel=preload 调用的资源完全下载之前触发 onload 事件?所以这里控制台会在下载和显示图像 myimg.jpg 之前打印“页面加载”。
我在这里阅读了以下内容:https://www.programmersought.com/article/5145872680/
另外,preload不会阻塞windows的onload事件,除非 对预加载资源的请求来自一个将 阻止窗口加载。
我不确定它的实际含义。这是否意味着可以在使用 rel=preload 的资源完全下载之前触发 onload 事件?
解决方法
是否有可能在使用 rel=preload 调用的资源完全下载之前触发 onload 事件?
是的。预加载强制请求优先不阻塞 window.onload()。所以是的,它可以被触发 earlier。
对于你的第二个问题,我觉得问题是措辞不当。我在网上又找到了一个类似措辞的声明
最重要的是,preload 不会阻止窗口的 onload 事件,除非该资源也被阻止该事件的资源请求。
这可能是指这种情况:
假设您有一个 URL 字体资源。一个是使用 preload
(non-blocking) 获取的,另一个是从 CSS 样式表中获取的 <link>
(没有任何 preload/prefetch
指令,所以 阻塞)。如果您的 CSS 样式表位于字体 <link>
上方,那么在解析样式表时,它已经请求字体 URL 并阻止渲染。带有预加载的第二个 <link>
在这里没有意义。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。