前言
我最初接触PWA是在2017年年初,当时参加了一个前端分享会,其中一个主题就是与PWA相关的,介绍了PWA的Service Worker和安装到桌面的能力,以及这门技术未来的发展趋势,听完这个分享后,我就为PWA的一些能力所吸引。
Web本身的优势就非常明显,如可分享,可搜索,无须下载,在任何设备上有相同的展示等,现在再加上PWA的能力,让Web在原有的基础上具备了类原生应用程序的功能,这对于Web开发者来说是一个福音,可以让Web提供更好的用户体验,也能带来更多红利。随后,我便开始了对PWA的学习和探索之路。
在实际工作中,有很多场景适合使用PWA,这也使我的PWA实践之路有了一个很好的前提条件。在实践的过程中,并没有想象的那么顺利,PWA的大多数概念都有一些理解成本,一不小心就会犯错,大多数情况下是一边“挖坑”一边“填坑”。当然,最后在很多合适的场景中,我发现PWA的接入确实带来了非常好的效果,为业务产品带来了更多价值,提升了用户体验。
本书是一本PWA技术人门和实践的图书。通过本书,你可以对PWA有较深人的理解并进行一些项目实践。本书对PWA的核心技术做了比较透彻的讲解,对PWA中可能遇到的问题及一些注意事项也进行了充分说明。阅读过程中,所有的PWA知识点基本都可以在本书中找到说明。本书既可以作为一本PWA的人门图书,也可以作为一本PWA的使用手册。遇到关于PWA的问题时,请阅读这本书,相信本书可以让你找到问题的解决方法。
第1章介绍PWA的发展历程及生态环境,并为你开启第一个PWA应用示例,让你对PWA有一个基本了解。第2章介绍PWA的一些前置技术及预备知识,让你后面的学习过程更顺畅,如果你对这部分知识已有所了解,则可以跳过这一章。第3章开始对PWA最核心的部分——Service Worker进行讲解,这一章详细讲解了Service Worker的各个知识点、注意事项及实践。第4章开始进入PWA的核心API部分,在这一章中,你可以学习PWA的一些核心API,包含安装到桌面、新一代网络请求、消息通知、后台同步、离线缓存、消息推送,该章中各小节属于并行知识点,可根据需求阅读任意一节。第5章介绍PWA使用过程中的一些配套工具,包括调试工具、评测工具和提效工具,等等,让你的PWA开发过程更顺畅。第6章为PWA的实践部分,针对不同的功能需求进行实践讲解。第7章讲解Web的系统集成能力,让系统集成能力配合PWA,使Web可以和应用程序相媲美。
本书主要面向有一定Web开发基础的读者,以及想学习PWA或者需要一本全面的PWA手册的开发者。
本书中用到的项目代码可以通过GitHub下载,地址为https://github.com/lecepin/PWA-Book。
致谢
首先要感谢我的前主管兰弼,他在实际工作中给了我充分的时间深挖PWA的价值和使用场景,并给了我在实际产品项目中落地的实践机会,让我在这方面有了非常多的实践经验。然后要感谢我的现主管仙甲对我在PWA技术上的支持和鼓励。经过长期实践和经验总结,我对这门技术有了一定的研究,也就有了分享的欲望,所以我还要感谢机械工业出版社华章公司的吴怡编辑,是她找到了我,给我提供了写书的机会,让我可以把在PWA技术上的沉淀与更多人分享。最后要感谢工作团队的伙伴们,很多时候大家一起“脑暴”,产出了很多想法。