什么是 Web API 中的 background fetch API

简介: 什么是 Web API 中的 background fetch API

在为 Web 编写代码时,有大量可用的 Web API。这个网站列出了您在开发 Web 应用程序或站点时可以使用的所有 API 和接口(对象类型)。

Web API 通常与 JavaScript 一起使用,尽管情况并非总是如此。

这是按照字母排序的。

Background Fetch API

这个 API 提供了可能需要花费很长时间下载的资源下载方法,比如 movies, audio 文件和软件。


当 Web 应用程序要求用户下载大文件时,这通常会带来一个问题,即用户需要保持与页面的连接才能完成下载。如果他们失去连接,请关闭选项卡或离开下载停止的页面。


以前曾经有一个后台同步下载 API,能够延迟 service worker 的处理,直到用户重新处于连接状态。但是它不能用于长时间运行的任务,例如下载大文件。后台同步要求 Service Worker 保持活动状态直到获取完成,并且为了节省电池寿命并防止在后台发生不需要的任务,浏览器将在某个时候终止任务。


而本文描述的 background fetch API 则不存在这个问题。它为 Web 开发人员创建了一种方法来告诉浏览器在后台执行一些 fetch 操作以进行文件下载,例如当用户单击按钮下载视频文件时。然后浏览器以用户可见的方式执行提取,向用户显示进度并为他们提供取消下载的方法。下载完成后,浏览器会打开 Service Worker,此时您的应用程序可以根据需要对响应执行某些操作。


如果用户在离线状态下启动进程,后台提取 API 将启用提取。一旦它们连接起来,它就会开始。如果用户离线,该过程将暂停,直到用户再次上线。


看个具体的例子。


首先检查浏览器是否支持 background fetch API:

if (!('BackgroundFetchManager' in self)) {
  // Provide fallback downloading.
}

下面的例子使用 fetch API 一次性下载多个文件:

navigator.serviceWorker.ready.then(async (swReg) => {
  const bgFetch = await swReg.backgroundFetch.fetch('my-fetch', ['/ep-5.mp3', 'ep-5-artwork.jpg'], {
    title: 'Episode 5: Interesting things.',
    icons: [{
      sizes: '300x300',
      src: '/ep-5-icon.png',
      type: 'image/png',
    }],
    downloadTotal: 60 * 1024 * 1024,
  });
});


相关文章
|
7天前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
22 4
|
7天前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
22 2
|
9天前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
24 3
|
7天前
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
20 0
|
8天前
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
17 0
|
8天前
|
前端开发 JavaScript API
告别繁琐!AJAX与Fetch API,让你的前后端沟通畅通无阻,项目效率飙升!
在Web开发中,前后端的顺畅沟通至关重要。传统方法常需频繁刷新页面,影响体验与效率。AJAX和Fetch API的出现简化了这一过程。AJAX利用XMLHttpRequest实现局部页面更新,提升用户体验;Fetch API则以更简洁的语法和强大的功能,进一步优化异步请求处理。两者均能显著提高开发效率,简化代码结构,让项目迭代更快速。拥抱这些技术,让Web开发之路更加顺畅。
17 0
|
4天前
|
设计模式 测试技术 持续交付
开发复杂Web应用程序
【10月更文挑战第3天】开发复杂Web应用程序
13 2
|
7天前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
20 3
|
1月前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
73 8
只需四步,轻松开发三维模型Web应用
|
25天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
91 6