Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于服务人员离线使用web应用程序?_Web_Service Worker - Fatal编程技术网

如何基于服务人员离线使用web应用程序?

如何基于服务人员离线使用web应用程序?,web,service-worker,Web,Service Worker,我知道有很多关于服务人员的文件,也有很多问题已经问过了 但今天对我来说是漫长的一天,所以我现在读了很多文件,感到非常累 我只想解释一下我对服务工作者的想法,它如何帮助我们离线服务web应用程序,我希望每个人都能告诉我它是否正确 我所知道的关于服务人员的一切都是在浏览器的网络请求作业上拦截,然后做一些事情。所以我猜当它拦截时,它会缓存每个请求。因此,当网络未连接时,服务工作者使用缓存的数据为用户服务 谢谢大家的回复,是的,你的想法是对的。在这里,我将提供有关整个功能的更多细节 服务工作者(SW)与

我知道有很多关于服务人员的文件,也有很多问题已经问过了

但今天对我来说是漫长的一天,所以我现在读了很多文件,感到非常累

我只想解释一下我对服务工作者的想法,它如何帮助我们离线服务web应用程序,我希望每个人都能告诉我它是否正确

我所知道的关于服务人员的一切都是在浏览器的网络请求作业上拦截,然后做一些事情。所以我猜当它拦截时,它会缓存每个请求。因此,当网络未连接时,服务工作者使用缓存的数据为用户服务


谢谢大家的回复,

是的,你的想法是对的。在这里,我将提供有关整个功能的更多细节

服务工作者(SW)与web工作者一样,运行在与主web应用程序使用的线程不同的线程上。这样,即使web应用程序未打开,软件也可以保持运行,例如,允许接收和显示web通知

SW不同于web worker,用于一般目的,专门充当web应用程序和网络之间的代理。但是,由我们定义和实施软件必须在本地缓存数据的内容和方式,否则,默认情况下,软件不知道在缓存中存储什么

为此,我们必须实施缓存策略以静态资产(例如.js或.css文件)甚至URL为目标(但请记住,软件使用的缓存API只能缓存GET调用,不能缓存PUT/POST)。 一旦在特定策略范围内定义了我们感兴趣的资产或URL,软件将拦截所有传出请求,并查看是否存在匹配,最终从本地缓存提供数据,而不是通过网络

当然,这取决于我们选择/实施的战略

由于请求的数据已经在本地可用,因此软件可以在用户离线时交付数据

如果您感兴趣,可以选择s和一些最常见的缓存策略,应用于不同的场景