fetch("http://localhost:8000/pay", { method: "POST", body: paymentBody,});fetch("http://localhost:8000/log", { method: "POST", body: loggingBody,});
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
文章插图
现在,我们要明确地告诉浏览器每个请求的优先级:
fetch("http://localhost:8000/pay", { method: "POST", body: paymentBody,+ priority: "high"});fetch("http://localhost:8000/log", { method: "POST", body: loggingBody,+ priority: "low"});
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
文章插图
可能的担忧是"low"优先级的请求可能会丢失 - 如果用户过早离开页面,请求可能会被取消 。这是一个真正的问题 。根据几个因素,关闭标签页或转到下一个页面可能导致一个重要但相对低优先级的请求被中止 。
幸运的是 , fetch() 还接受一个 keepalive 选项 。当设置为true时,即使页面终止,浏览器也会完成该请求 。
何时使用当你知道多个请求正在并发执行 , 并且你明确知道哪个最重要(或哪个可以安全地被降级)时,指示fetch()的优先级 。
优先化<img />请求如果我们不做任何特殊处理 , 浏览器会尽量确定页面上最重要的图像 。为了说明这一点,我加载了以下图像,它们之间的距离很大,所以只有一个会在"页面首部"显示 。
<img src=https://www.isolves.com/it/wlyx/wzjs/2023-10-25/"./cat-1.jpeg" />
- 1.
- 2.
- 3.
- 4.
- 5.
文章插图
当我为第一张图片添加fetchpriority属性时,情况变得更加可预测:
<img src=https://www.isolves.com/it/wlyx/wzjs/2023-10-25/"./cat-1.jpeg" fetchpriority="high" />
- 1.
顺便说一句,这个特性与本地图像延迟加载非常搭,这是现在非常受支持的特性 。
<img src=https://www.isolves.com/it/wlyx/wzjs/2023-10-25/"./cat-1.jpeg" fetchpriority="high"/>
- 1.
- 2.
- 3.
- 4.
- 5.
文章插图
何时使用当你知道它们对页面体验非常重要时,对图像使用明确的fetchpriority 。主图像是一个很好的开始,它甚至可以影响页面的核心网络指标 - 特别是LCP(最大内容绘制) 。
优先化 <script /> 标签页面上带有src属性的任何普通<script />在获取时都会得到高优先级,但这有一个权衡:在它加载并执行之前 , 它会阻止解析页面的其余部分 。出于这个原因,async属性很有用 。它会以低优先级在后台请求脚本 , 并在准备好后立即执行 。知道这一点,以下设置行为是可预测的:
<script src=https://www.isolves.com/it/wlyx/wzjs/2023-10-25/"/script-async.js" async notallow="console.log('async')">
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Redis 的主库挂了,如何不间断服务?
- Go中使用sync.Map实现线程安全的缓存
- 如何从单体架构迁移到微服务架构:挑战和最佳实践
- 如何确定Apache Kafka的大小和规模
- 探究PaLM 2如何工作的完整指南
- 电脑启动后一直卡在正在准备window界面,如何解决
- cdr中如何制作表格,cdr应该怎么才能画表格
- 手机如何实现远程控制另一台手机?
- 苹果手机如何使用微信分身?
- 如何给微信上锁?教你三种方法,保护微信资金安全