美文网首页
3.7 离线应用

3.7 离线应用

作者: 柠檬与断章 | 来源:发表于2019-11-28 09:39 被阅读0次

3.7 离线应用

问题一:什么是离线应用?

离线应用是指通过离线缓存技术,让资源在第一次被加载后缓存在本地,下次访问它时就直接返回本地的文件,就算没有网络连接。

问题二:离线应用优点?

在没有网络的情况下也能打开网页。

由于部分被缓存的资源直接从本地加载,对用户来说可以加速网页加载速度,对网站运营者来说可以减少服务器压力以及传输流量费用。

问题三:离线应用核心是什么?

离线应用的核心是离线缓存技术,历史上曾先后出现2种离线离线缓存技术,它们分别是:

AppCache又叫 Application Cache,目前已经从 Web 标准中删除,请尽量不要使用它。

Service Workers是目前最新的离线缓存技术,是Web Worker的一部分。 它通过拦截网络请求实现离线缓存,比 AppCache 更加灵活。它也是构建PWA应用的关键技术之一。

问题四:什么是 Service Workers?

Service Workers是一个在浏览器后台运行的脚本,它生命周期完全独立于网页。它无法直接访问 DOM,但可以通过 postMessage 接口发送消息来和 UI 进程通信。 拦截网络请求是 Service Workers 的一个重要功能,通过它能完成离线缓存、编辑响应、过滤响应等功能。

问题五:Service Workers兼容性?

目前 Chrome、Firefox、Opera 都已经全面支持 Service Workers,但对于移动端浏览器就不太乐观了,只有高版本的 Android 支持。 由于 Service Workers 无法通过注入 polyfill 去实现兼容,所以在你打算使用它前请先调查清楚你的网页的运行场景。

判断浏览器是否支持 Service Workers 的最简单的方法是通过以下代码:

// 如果 navigator 对象上存在 serviceWorker 对象,就表示支持if(navigator.serviceWorker){// 通过 navigator.serviceWorker 使用}

问题六:如何注册Service Workers?

要给网页接入 Service Workers,需要在网页加载后注册一个描述 Service Workers 逻辑的脚本。 代码如下:

if(navigator.serviceWorker){window.addEventListener('DOMContentLoaded',function(){// 调用 serviceWorker.register 注册,参数 /sw.js 为脚本文件所在的 URL 路径navigator.serviceWorker.register('/sw.js');});}

一旦这个脚本文件被加载,Service Workers 的安装就开始了。这个脚本被安装到浏览器中后,就算用户关闭了当前网页,它仍会存在。 也就是说第一次打开该网页时 Service Workers 的逻辑不会生效,因为脚本还没有被加载和注册,但是以后再次打开该网页时脚本里的逻辑将会生效。

在 Chrome 中可以通过打开网址chrome://inspect/#service-workers来查看当前浏览器中所有注册了的 Service Workers。

相关文章

  • 3.7 离线应用

    3.7 离线应用 问题一:什么是离线应用? 离线应用是指通过离线缓存技术,让资源在第一次被加载后缓存在本地,下次访...

  • 离线检测

    离线Web应用概念 离线Web应用,就是在设备不能上网的情况下任然可以运行的应用。 开发离线Web应用步骤 首先,...

  • HTML5--离线web应用

    HTML5新增了离线应用,离线应用使得我们可以在网页或应用在没有网络的情况下依然可以使用。离线应用的使用需要以下几...

  • 离线应用与客户端存储(23)

    -进行离线检测-使用离线缓存-在浏览器中保存数据 离线web应用,就是设备在不能上网的情况下仍然可以运行的应用。 ...

  • Windows7上Python3环境离线安装 PyInstall

    Window 7 不能连外网,Python 3.7的虚拟环境离线安装 PyInstaller 3.4下载安装源文件...

  • 离线应用

    离线应用其实就是一个URL列表,在该列表中报错HTML,CSS,JavaScript,图片以及其他资源性文件的UR...

  • h5缓存---application应用 h5缓存

    一、何为离线应用 离线应用,故名思议,就是这个应用及时在没有网络的情况下,也可以继续使用,不受影响。applica...

  • 移动web离线应用

    离线应用 在没有网络的情况下访问web程序时,实际是在访问其已经下载的离线文件资源; 离线应用与网页缓存都是为了更...

  • JavaScript高级编程笔记(5)

    离线应用/客户端存储 1.离线检测 (1)、 navigator.onLine 检测设备在线还是离线 (有兼容性问...

  • Service Worker — 实现离线应用

    用于离线缓存 可以用来实现离线应用,本质上充当应用程序、浏览器和网络之间的代理服务器。 用于实现离线缓存时,它拦截...

网友评论

      本文标题:3.7 离线应用

      本文链接:https://www.haomeiwen.com/subject/snuxictx.html