当前位置: 首页 > 知识库问答 >
问题:

工兵和服务工人

那鹏
2023-03-14

这更像是一个服务人员的问题,尽管它可能更具体地针对Sapper。我真的不知道,因为我是第一个和服务人员打交道的人,我几乎没有使用过他们,而且经常觉得他们是个麻烦。

基本上,无论我做什么,我都无法让localhost:3000停止加载应用程序的旧副本。我以各种方式取消了服务工作人员的注册,包括尝试以编程方式取消注册。我清除了缓存,甚至清除了浏览器中的所有浏览数据。我的Sapper开发环境中的服务器未运行。

这发生在《勇敢》中,但在歌剧中表现相同,似乎是一个普遍的Chromium场景。我不使用火狐或Safari,但可能很快会在其中进行测试,看看那里会发生什么行为。

下面是一个剪辑,展示了我如何尝试注销该服务人员。

https://youtu.be/Cb24I_fEklE

共有3个答案

匡凌
2023-03-14

确保关闭运行应用程序的任何浏览器选项卡,在服务人员为现有版本的应用程序提供服务时,您不能更换服务人员。如果存在任何缓存问题,请在安装service worker后尝试重新加载页面。

柴磊
2023-03-14

清除缓存,唯一能让我绕过它的东西。

问题是Service Worker是缓存中的服务,再次从缓存中提供服务可能会将缓存中的此项重置为更有效的发送,并且您会陷入某种循环。

--

我发现这个问题是因为我正在考虑完全删除服务人员,以使我的网站性能更高一点。。。

这是非常必要的吗?它的好处是什么?

扈沛
2023-03-14

我用了这个小技巧,就像一个咒语。在您的rollup.config.js中,在输出对象中有一个serviceWorker对象。

serviceworker: {
    input: config.serviceworker.input(),
    output: config.serviceworker.output(),
    plugins: [
      resolve(),
      replace({
        "process.browser": true,
        "process.env.NODE_ENV": JSON.stringify(mode),
      }),
      commonjs(),
      !dev && terser(),
    ],

    preserveEntrySignatures: false,
    onwarn,
  },

如果尚未声明,请在顶部定义变量dev

const dev = process.env.NODE_ENV === "development";

现在更改您的service worker配置,如下所示:

serviceworker: !dev && {
    input: config.serviceworker.input(),
    output: config.serviceworker.output(),
    plugins: [
      resolve(),
      replace({
        "process.browser": true,
        "process.env.NODE_ENV": JSON.stringify(mode),
      }),
      commonjs(),
      !dev && terser(),
    ],

    preserveEntrySignatures: false,
    onwarn,
  },
 类似资料:
  • 问题内容: 编辑2016年1月: 由于这仍然引起注意。自问了这个之后,我已经完成了一些AngularJS项目,对于我最常使用的那些项目,建立了一个对象并最后返回了该对象。但是,我下面的说法仍然正确。 编辑: 我想我终于了解了两者之间的主要区别,并且我有一个代码示例来演示。我也认为这个问题与建议的重复问题有所不同。重复项说明该服务不可实例化,但是如果您按照我在下面的演示中进行设置,它实际上是可实例化

  • 编辑2016年1月:因为这仍然得到关注。自从问了这个问题后,我已经完成了一些AngularJS项目,对于那些我主要使用的项目,构建了一个对象,并在最后返回了该对象。然而,我下面的陈述仍然是正确的。 编辑:我想我终于明白了两者之间的主要区别,我有一个代码示例来演示。我亦认为这项质询与拟议的重复质询有所不同。副本中说服务是不可实例化的,但如果您按照我在下面演示的方式进行设置,它实际上是可实例化的。可以

  • 开启服务 无参数 示例: HttpDemo/bin/imi server/start 停止服务 无参数 示例: HttpDemo/bin/imi server/stop 重新加载服务 重启 Worker 进程,不会导致连接断开,可以让项目文件更改生效 无参数 示例: HttpDemo/bin/imi server/reload 更新运行时缓存后,再重新加载服务 HttpDemo/bin/im

  • 我的Redis Sentinel故障转移不起作用,当master完成时,不进行握手,故障转移也不发生;然而,sentinel会显示主程序何时恢复到正常状态或何时关闭。我的sentinel.conf文件内容如下: 我真的很感激你能帮上忙。

  • 我正试图使用两个redis节点设置哨兵。请找到内联的conf文件。 端口16371 dir“C:\程序文件\redis\16371\” loglevel通知 日志文件“C:\Program Files\redis\logs\16371.log” 哨兵监视器示例127.0.0.1 6371 *致命配置文件错误*读取配置文件,在第5行 有人能帮我把这个修好吗。蒂亚:)

  • Web Socket服务器是一个简单的程序,它能够处理Web Socket事件和操作。它通常向Web Socket客户端API公开类似的方法,并且大多数编程语言提供实现。下图说明了Web Socket服务器和Web Socket客户端之间的通信过程,演示触发的事件和操作。 下图显示了Web Socket服务器和客户端事件触发 - 连接到Web服务器 WebSocket服务器的工作方式与WebSoc