service-worker - 我可以在我的服务人员中因一个错误而终止我的页面吗?
问题描述
早些时候我部署了一个新版本的页面,安装了一个服务工作者,它应该只在安装时缓存一个离线页面,如果服务工作者因为离线而无法获取文档,则重定向到这个缓存的离线页面。
现在有些事情没有按预期工作,有时服务人员会显示离线页面,尽管他不应该这样做。所以我惊慌失措,因为我找不到问题并部署了一个应该取消注册所有服务工作者的新版本。我希望一切都会再次为每个人工作。
但是,当我想到这些问题时,我感到震惊,因为我意识到服务人员可能有多么危险,这导致了我的问题,我在万维网的任何地方都找不到。所以也许有人给我一个答案:
如果我碰巧缓存了一个页面(例如离线页面),但错误地返回了这个缓存的离线页面,不仅在我的获取失败时,而且对于每个请求,会发生什么?然后我会杀死我的整个页面吗?
正如我所看到的,服务工作者会拦截对服务器的每个请求,而用户只会看到这个离线页面。哪个被缓存。所以我不能做任何事情来取消服务人员的注册?因为请求永远不会到达我的服务器或我可以修改的任何页面?
你能证实这个论点吗?还是证明错了?
我对此有一种非常不好的感觉。
感谢您帮助我们充分了解这到底有多危险。
问候
解决方案
是的。
您可以构建一些东西来删除/杀死您创建的任何网站的一部分。
然后也许构建一些东西以使该网站在没有您故意删除的部分的情况下运行。
这是一个最不寻常的用例。
您可能需要构建和测试某些东西以查看它是否按预期工作。
推荐阅读
- unit-testing - 如何测试调用类调用的委托的交互?
- sql-server - 将从数据库生成 SQL Server 脚本的脚本
- django - “(111:连接被拒绝)同时连接到上游,客户端:” | Django、Gunicorn、Nginx - 服务器错误(500)
- ruby-on-rails - UTF-8 中对于 Ruby 中的单引号无效的字节序列
- apache-kafka - 通过 kafka-topics 创建的主题是否应该自动创建关联的主题?
- exception - PL SQL 函数没有引发用户定义的异常
- c# - 如何反序列化 XML 文档?
- c# - 如何处理 .net core 3.1 自包含单文件发布的 Appsettings
- python-3.x - 有没有办法在 pytorch 中编写自定义 BCE 损失?
- java - SCDF任务执行创建了一个新的入口任务名称org.springframework.context.annotation.AnnotationConfigApplicationContext@36d4b5c