Service Workers让Web应用感觉更像是原生应用

那些希望他们的Web应用能够更像原生应用的开发者们即将会多一种选择:Service Workers。service worker是运行于浏览器后台的一种脚本,它可以无需Web页面或者用户交互就能提供额外的功能。

现在service worker的最佳使用场景是提供离线能力。开发人员可以注册一个service worker作为网络代理提供网络拦截。即使没有可用的网络时,这个代理也能够对缓存的数据和资源或者是已经生成的内容作出响应。在2014年的Chrome大会上,Alex Russell演示了基于Web的手机App如何使用这个功能来提供完全的离线能力。

和现有的HTML5数据缓存功能有很大的不同,service worker的离线能力是可编程的。Russell称它是一个:“让你做出选择去做哪些事的、可编程的、浏览器内置的代理”。由于service worker运行于后台,它和当前的Web页面完全独立,所以将来会有后台同步、推送通知等功能,虽然目前还不具备。

谷歌开发者、倡导者Matt Gaunt在其对service worker的介绍中提供了一份开发指南,其中包括如何开发一个基础的service worker的教程以及一些注意事项。

Google、Mozilla和Opera都已经在开发这个功能,大家对IE上提供此功能的呼声也甚高,微软已经表示他们正在考虑此事。苹果尚未表态Safari浏览器是否对其提供支持。

一般情况下,Chrome将在V40版本中正式提供Service worker,不过现在开发者已经可以通过Chrome的Beta版本来提前试用了。Jake Archibald在Github上维护了一个资源列表,大家可以在上面找到更多的相关信息和标准。

查看英文原文: Service Workers Promise to Make Web Apps Feel Native

感谢夏雪对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Service Workers让Web应用感觉更像是原生应用)