3 ms·
> Surely this is a shocking privacy hole? Also a performance/battery suck. Apple refuses to implement it in Safari, and it's one of the big reasons web develop
by kalleboo 6y ago
> Surely this is a shocking privacy hole?
Also a performance/battery suck. Apple refuses to implement it in Safari, and it's one of the big reasons web developers deride Safari for being "the new IE"
- GoblinSlayer 6y agoAs I understand the docs, they can be killed any time, e.g. when their site is left, then they aren't different from page scripts. Well, it doesn't look like they solve any problem either.
- detaro 6y agoThe most crucial thing they solve is giving websites access to their cached pages, and they can thus show cached content while also making a request for new data in the background, still provide cached functionality while the device isn't connected to the internet, ... In the wider concept of "PWA" (Progressive Web Apps), they also are used to enable webapps to act a bit like local apps if the user opts in - a user can add them to the homescreen, and they then are launched just like normal apps (but still sandboxed in the browser). An example that does this quite well is the Web-IRC client "The Lounge" - you can open and use it in the browser, but also pin it as a standalone app, including support for push notifications etc if you allow that.
- dTal 6y agoWell, except there's nothing stopping a site from handing out a unique service worker with a hard-coded i.d. to every visitor. It's persistent state with behaviour, like a cookie that can do things.
- detaro 6y ago> Also a performance/battery suck That's far from obvious. Good cache control and offline usage are great for battery usage. > Apple refuses to implement it in Safari Wrong, Safari supports them. What Apple doesn't do well is enabling webapps that you pin to your homescreen ("PWAs") to work (they allow it, but from what I hear it's buggy and has weird restrictions), because they'd rather force you to make a native app.
- account42 6y agoYou can have good cache control with HTTP headers, no need to run scripts on the client for that.