ServiceWorker 实例与地理位置更新的预期比率

Expected ratio of ServiceWorker instances to Geolocation Updates

编辑:同一位置有我的 Brotkrumen Web 应用程序的新版本。

最重要的 design/proposed-specification 变化是 TravelManager 订阅现在应该是特定于客户的。 TravelEvent 必须包含预期的 Client.id (TravelEvent.source.id)。这意味着 UA 必须监控和过滤每个客户端的 GeoLocation 更新。我还添加了新的演示功能,例如在您按下 "Arrive" 按钮时显示的旅行摘要。也可以通过按 "Map Trip" 或 "Replay" 在 Google 地图上重播该行程。如果行程的最后一次和下一次地理位置更新都在地图中可见 window,则通过 CSS 转换实现标记的平滑移动。

帮助 Background GeoLocation 起床并帮助 Web 应用程序与本地应用程序竞争!

如果我的 TravelManager 解决方案设计有问题,请告诉我。在上面撕个洞!

原问题:

一段时间以来,我一直在与 W3C/IETF(以及任何愿意参与的人)争论,ServiceWorkers 是承载 Ultimate Web Apps 竞争所需的后台地理定位功能的理想平台与本地应用程序的公平竞争环境。症结所在通常是 ServiceWorker 生命周期的短暂性。我一直认为立即杀死它们是疯狂的,大多数实现似乎都同意。 (Firefox 在 30 秒时最激进,请参阅 Bug 这种行为即使在 CPU/Memory 堆中也很普遍)

总之,为了证明我是对的,Jake Archibald之类的大错特错,我写了一点Web App。 (还有一个aaa_readme.txt)

现在它仍然需要一些工作来提供旅行摘要页面并将旅行映射到 Google 地图上,但我认为你会明白这个想法,最重要的是看到真实的世界,实际的,可证明的Service Worker 实例和地理位置更新之间的关系? (我想在八月欧洲人消失之前把它弄出来:-)

所以我在这里做了什么蠢事吗? 我是否在想象,当我在回家的路上长时间被困在灯光下并且无处可见位置更新时,我只会得到一个新的 Service worker 实例? 难道我的编码能力很差,测试能力不存在吗?

如果不是,那么我不知道为什么不允许 Web 应用程序满足这些合法且非常理想的用户需求。当然,我们将获得用户授权、权限和发现权,但让我们继续吧? TravelManagerPolyfill.js文件几乎是所有UA开发者所要做的!

问:我是否正确理解了 ServiceWorker 架构并随时间对 ServiceWorker 实例化实施了有效的启发式询问?

A:是的,示例代码最终证明了 Service Worker 范式非常适合将备受吹捧的后台地理定位交付给终极 Web 应用程序。为每个新位置更新更新 SW 实例到期计时器是 SW 寿命的关键。这是迄今为止对 Web 应用程序后台地理定位难题可用的电池最友好但功能最丰富的解决方案。

注意:我建议每个客户端使用一个单独的 TravelManager 实例(与 POC 示例不同)和 Flex Box 样式。

希望 UA 供应商尽快采用它!