在网站中运行后台进程
Posted
技术标签:
【中文标题】在网站中运行后台进程【英文标题】:Running Background Processes in Websites 【发布时间】:2018-02-15 06:17:11 【问题描述】:我有兴趣在用户访问网站后运行后台进程。我的问题非常广泛,但例如我想每分钟左右轮询一次 JSON API,并在 JSON API 的响应发生变化时向用户发送网络通知。服务人员可以做到这一点吗?我怎样才能做到这一点?
如果这是可能的,那么我是否可以在服务工作者中运行 WebAssembly 文件,以便即使网站未打开,应用程序也可以运行?
或者我可以运行服务工作者来获取网站的最新版本并将其缓存,以便网站在下次访问时立即加载?
【问题讨论】:
请查看此链接,希望对您有所帮助jsfiddle.net/1g88x8z8 【参考方案1】:无法注册在用户访问网站后无限期继续运行的持久后台进程。
访问网站时可以注册服务工作者。 Service Worker 大部分时间不会运行,但可以被传入的 push notification 等事件“唤醒”,即使用户当前没有打开与您的 Web 应用关联的页面。
按照设计,当 Service Worker 以这种方式被唤醒时,它只会运行一小段时间,然后就会终止。还应向用户发送show a notification,让他们知道正在发生的事情。通过push
事件唤醒但不显示通知的服务工作者可能会发现自己被浏览器禁用。
【讨论】:
以上是关于在网站中运行后台进程的主要内容,如果未能解决你的问题,请参考以下文章