prefetch 和preload_preload和prefetch

prefetch 和preload_preload和prefetch1 preload 和 prefetch 的出现为我们提供了可以更加细粒度地控制浏览器加载资源的方法 2 preload link 标签的 preload 是一种声明式的资源获取请求方式 用于提前加载一些需要的依赖 并且不会影响页面的 onload 事件 使用方式如下 css 加载后立即生效其中 rel 属性值为 preload as 属性用于规定资源的类型 并根据资源类型设置 Accep 请求头 以便能够使用正常

1、 preload和prefetch的出现为我们提供了可以更加细粒度地控制浏览器加载资源的方法

2、 preload:

link标签的preload是一种声明式的资源获取请求方式,用于提前加载一些需要的依赖,并且不会影响页面的onload事件;使用方式如下:

// css加载后立即生效

其中,rel属性值为preload;as属性用于规定资源的类型,并根据资源类型设置Accep请求头,以便能够使用正常的策略去请求对应的资源;href为资源请求地址;onload和onerror则分别是资源加载成功和失败后的回调函数;

其中as的值可以取style、script、image、font、fetch、document、audio、video等;如果as属性被省略,那么该请求将会当做异步请求处理;

另外,在请求跨域资源时推荐加上crossorigin属性,否则可能会导致资源的二次加载(尤其是font资源);

preload特点:

preload加载的资源是在浏览器渲染机制之前进行处理的,并且不会阻塞onload事件;

preload可以支持加载多种类型的资源,并且可以加载跨域资源;

preload加载的js脚本其加载和执行的过程是分离的。即preload会预加载相应的脚本代码,待到需要时自行调用;

3、prefetch:

prefetch是一种利用浏览器的空闲时间加载页面将来可能用到的资源的一种机制;通常可以用于加载非首页的其他页面所需要的资源,以便加快后续页面的首屏速度;

prefetch特点

prefetch加载的资源可以获取非当前页面所需要的资源,并且将其放入缓存至少5分钟(无论资源是否可以缓存);并且,当页面跳转时,未完成的prefetch请求不会被中断;

4、对比:

缓存:

Chrome有四种缓存:http cache、memory cache、Service Worker cache和Push cache。在preload或prefetch的资源加载时,两者均存储在http cache。当      资源加载完成后,如果资源是可以被缓存的,那么其被存储在http cache中等待后续使用;如果资源不可被缓存,那么其在被使用前均存储在memory     cache;

preload和prefetch都没有同域名的限制;

preload主要用于预加载当前页面需要的资源;而prefetch主要用于加载将来页面可能需要的资源;

不论资源是否可以缓存,prefecth会存储在net-stack cache中至少5分钟;

p    reload需要使用as属性指定特定的资源类型以便浏览器为其分配一定的优先级,并能够正确加载资源;

5、属性是否支持检测:

const preloadSupported = () => {

const link = document.createElement(‘link’);

const relList = link.relList;

if (!relList || relList.supports)

return false;

return relList.supports(‘preload’);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201775.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:38
下一篇 2026年3月20日 上午8:39


相关推荐

  • pycharm怎么导包_python自动到包快捷键

    pycharm怎么导包_python自动到包快捷键其实在pycharm中导包极为便捷和方便,下面就和大家分享一下吧:首先点击file,再点击settings,再ProjectorInterpreter中点击,输入想要的包名,最后点击installpackage…

    2022年8月28日
    16
  • XGBoost简介

    XGBoost简介本文据此对XGBoost的原理做简单的介绍…XGBoost[1]是2014年2月诞生的专注于梯度提升算法的机器学习函数库,此函数库因其优良的学习效果以及高效的训练速度而获得广泛的关注。仅在2015年,在Kaggle[2]竞赛中获胜的29个算法中,有17个使用了XGBoost库,而作为对比,近年大热的深度神经网络方法,这一数据则是11个。在KDDCup2015[3]竞赛中,排

    2022年6月1日
    106
  • 调用JQUERY返回顶部功能

    调用JQUERY返回顶部功能

    2021年9月15日
    55
  • 定时任务cron表达式使用详解

    定时任务cron表达式使用详解项目中有时会需要定时去触发一些任务 Java 实现定时任务一般有三种方法 JDK 自带的 Timer 以及 JDK1 5 新增的 ScheduledExe Quartz 定时器 简单却强大的 JAVA 作业调度框架 Spring3 0 以后自带的 task 任务调度 可以将它看成一个轻量级的 Quartz 而且使用起来比 Quartz 简单许多 这里不去细谈三种定时任务实现的原理 可以自行去百度查看 下面主要说一下在设置定时任务时用到的 cron 表达式 Linux 系统中内置 cron 进程 通过 cron

    2025年6月3日
    5
  • 深度强化学习-DQN算法原理与代码

    深度强化学习-DQN算法原理与代码DQN 算法是 DeepMind 团队提出的一种深度强化学习算法 在许多电动游戏中达到人类玩家甚至超越人类玩家的水准 本文就带领大家了解一下这个算法 论文的链接见下方 论文 https www nature com articles nature14236 pdf 代码 后续会将代码上传到 Github 上 1DQN 算法简介 Q learning 算法采用一个 Q tabel 来记录每个状态下的动作值 当状态空间或动作空间较大时 需要的存储空间也会较大 如果状态空间或动作空间连续 则该算法无法使用 因

    2026年3月19日
    1
  • Mac 中使用phpstorm 修改文件提示”only read”,只读权限[通俗易懂]

    Mac 中使用phpstorm 修改文件提示”only read”,只读权限

    2022年2月8日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号