在 Service Worker 中可以做什么和不能做什么有哪些限制?

pin*_*yid 11 javascript service-worker progressive-web-apps

进一步从服务工作者在Safari的iOS我能HTTP轮询或使用socket.io?在 Service Worker 中可以做什么和不能做什么的列表是什么?上面引用的答案说“您不能……与您的服务器建立任何类型的开放连接”,这是有道理的,但该事实记录在哪里以及如何实施限制?

例如,某些浏览器 API 对 Service Workers 不可用吗?或者是否有阻止长时间运行进程的执行配额?

例如。如果我的服务工作者有...... setInterval (()=>{console.log('foo'), 1000}) 它会抛出异常吗?它会运行然后失败吗?行为浏览器是否依赖?

muz*_*tov 4

Service Worker 只应该处理附加事件。这些将由外部的某个脚本注册。在某些情况下,Safari 甚至不支持延迟执行 - Event.waitUntil(promise)。

一旦事件队列为空,您的用户代理就应该决定是否终止服务。无法保证从那时起任何事情都会被执行。