In 2015 we introduced Background Sync which allows the service worker to defer work until the user has connectivity. This means the user could type a message, hit send, and leave the site knowing that the message will be sent either now, or when they have connectivity. It's a useful feature, but it requires the service worker to be alive for the duration of the fetch. That isn't a problem for shor