当前位置: 首页 > 编程笔记 >

JavaScript 一个简单的服务工人

韩夕
2023-03-14
本文向大家介绍JavaScript 一个简单的服务工人,包括了JavaScript 一个简单的服务工人的使用技巧和注意事项,需要的朋友参考一下

示例

main.js

服务工作者是根据事件和原点和路径注册的工作者。它采用JavaScript文件的形式,该文件可以控制与其关联的网页/站点,以非常精细的方式拦截和修改导航和资源请求,以及缓存资源,从而使您可以完全控制应用在某些情况下的行为(最明显的情况是网络不可用时。)

资料来源:MDN

几样东西:

  1. 这是JavaScript工作者,因此无法直接访问DOM

  2. 这是一个可编程的网络代理

  3. 它在不使用时将终止,并在下次需要时重新启动

  4. 服务人员的生命周期与您的网页完全独立

  5. 需要HTTPS

此代码将在Document上下文中执行,(或)此JavaScript将通过<script>标签包含在您的页面中。

// 我们检查浏览器是否支持ServiceWorkers
if ('serviceWorker' in navigator) {
  navigator
    .serviceWorker
    .register(
      // 服务工作者文件的路径
      'sw.js'
    )
    // 注册是异步的,它返回一个promise
    .then(function (reg) {
      console.log('Registration Successful');
    });
}

sw.js

这是服务工作者代码,在ServiceWorker全局范围中执行。

self.addEventListener('fetch', function (event) {
  // 在这里什么也不做,只记录所有网络请求
  console.log(event.request.url);
});
           

 类似资料:
  • Http是一个比tcp更高级的协议,它描述了客户端浏览器如何与网页服务器进行通信。Go有自己的net/http包,我们来看看它。我们从一些简单的示例开始, 首先编写一个“Hello world!”:查看示例15.6 我们引入了http包并启动了网页服务器,和15.1的net.Listen("tcp", "localhost:50000")函数的tcp服务器是类似的,使用http.ListenAnd

  • 前面小节已经介绍了Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。 http包建立Web服务器 package main import ( "fmt" "net/http" "strin

  • 本文向大家介绍Python写的一个简单DNS服务器实例,包括了Python写的一个简单DNS服务器实例的使用技巧和注意事项,需要的朋友参考一下 因为突然有个邪恶的想法,想在自己的Android平板上面搭建一个DNS服务器,因为平板上之前安装过SL4A和Python的解释器,也想继续学学Python因此,就打算用Python实现了。 在Google上面找了一下,Python实现的DNS,没找到我所希

  • 错误:在object.exports._errnoException(util.js:1018:11)在exports._exceptionwithhostport(util.js:1041:20)在server._listen2(net.js:1245:19)在server.listen(net.js:1294:10)在eventemitter.listen(net.js:1390:5)在obj

  • 本文向大家介绍Go语言实现的一个简单Web服务器,包括了Go语言实现的一个简单Web服务器的使用技巧和注意事项,需要的朋友参考一下 Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。 http包建立Web服务器 上

  • 问题内容: 有谁知道将Java方法发布为Web服务的非常简单的方法?我真的不想要使用Tomcat或Jetty或任何其他容器框架的开销。 方案:我想从本地LAN上的其他计算机访问服务类型应用程序中的一组Java方法。 问题答案: 好吧,Tomcat或Jetty对于将某些方法发布为Web服务可能是过大的。但是另一方面,它并不太复杂,他们可以完成工作,那么为什么不呢? 不久前我遇到了类似的问题,并将To