浏览器工作原理与实践
李兵
前盛大创新院高级研究员
立即订阅
6167 人已学习
课程目录
已完结 42 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 参透了浏览器的工作原理,你就能解决80%的前端难题
免费
宏观视角下的浏览器 (6讲)
01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?
02 | TCP协议:如何保证页面文件能被完整送达浏览器?
03 | HTTP请求流程:为什么很多站点第二次打开速度会很快?
04 | 导航流程:从输入URL到页面展示,这中间发生了什么?
05 | 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
06 | 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
浏览器中的JavaScript执行机制 (5讲)
07 | 变量提升:JavaScript代码是按顺序执行的吗?
08 | 调用栈:为什么JavaScript代码会出现栈溢出?
09 | 块级作用域:var缺陷以及为什么要引入let和const?
10 | 作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
11 | this:从JavaScript执行上下文的视角讲清楚this
V8工作原理 (3讲)
12 | 栈空间和堆空间:数据是如何存储的?
13 | 垃圾回收:垃圾数据是如何自动回收的?
14 | 编译器和解释器:V8是如何执行一段JavaScript代码的?
浏览器中的页面循环系统 (6讲)
15 | 消息队列和事件循环:页面是怎么“活”起来的?
16 | WebAPI:setTimeout是如何实现的?
17 | WebAPI:XMLHttpRequest是怎么实现的?
18 | 宏任务和微任务:不是所有任务都是一个待遇
19 | Promise:使用Promise,告别回调函数
20 | async/await:使用同步的方式去写异步代码
浏览器中的页面 (8讲)
21 | Chrome开发者工具:利用网络面板做性能分析
22 | DOM树:JavaScript是如何影响DOM树构建的?
23 | 渲染流水线:CSS如何影响首次加载时的白屏时间?
24 | 分层和合成机制:为什么CSS动画比JavaScript高效?
25 | 页面性能:如何系统地优化页面?
26 | 虚拟DOM:虚拟DOM和实际的DOM有何不同?
27 | 渐进式网页应用(PWA):它究竟解决了Web应用的哪些问题?
28 | WebComponent:像搭积木一样构建Web应用
浏览器中的网络 (3讲)
29 | HTTP/1:HTTP性能优化
30|HTTP/2:如何提升网络速度?
31|HTTP/3:甩掉TCP、TLS 的包袱,构建高效网络
浏览器安全 (5讲)
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源?
33 | 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?
34 | CSRF攻击:陌生链接不要随便点
35 | 安全沙箱:页面和系统之间的隔离墙
36 | HTTPS:让数据传输更安全
结束语 (1讲)
结束语 | 大道至简
课外加餐 (4讲)
加餐一|浏览上下文组:如何计算Chrome中渲染进程的个数?
加餐二|任务调度:有了setTimeOut,为什么还要使用rAF?
加餐三|加载阶段性能:使用Audits来优化Web性能
加餐四|页面性能工具:如何使用Performance?
浏览器工作原理与实践
登录|注册

27 | 渐进式网页应用(PWA):它究竟解决了Web应用的哪些问题?

李兵 2019-10-05
在专栏开篇词中,我们提到过浏览器的三大进化路线:
第一个是应用程序 Web 化;
第二个是 Web 应用移动化;
第三个是 Web 操作系统化;
其中,第二个 Web 应用移动化是 Google 梦寐以求而又一直在发力的一件事,不过对于移动设备来说,前有本地 App,后有移动小程序,想要浏览器切入到移动端是相当困难的一件事,因为浏览器的运行性能是低于本地 App 的,并且 Google 也没有类似微信或者 Facebook 这种体量的用户群体。
但是要让浏览器切入到移动端,让其取得和原生应用同等待遇可是 Google 的梦想,那该怎么做呢?
这就是我们本节要聊的 PWA。那什么是 PWA?PWA 又是以什么方式切入到移动端的呢?
PWA,全称是 Progressive Web App,翻译过来就是渐进式网页应用。根据字面意思,它就是“渐进式 +Web 应用”。对于 Web 应用很好理解了,就是目前我们普通的 Web 页面,所以 PWA 所支持的首先是一个 Web 页面。至于“渐进式”,就需要从下面两个方面来理解。
站在 Web 应用开发者来说,PWA 提供了一个渐进式的过渡方案,让普通站点逐步过渡到 Web 应用。采取渐进式可以降低站点改造的代价,使得站点逐步支持各项新技术,而不是一步到位。
站在技术角度来说,PWA 技术也是一个渐进式的演化过程,在技术层面会一点点演进,比如逐渐提供更好的设备特性支持,不断优化更加流畅的动画效果,不断让页面的加载速度变得更快,不断实现本地应用的特性。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《浏览器工作原理与实践》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • 小黑彪Geek_070fb4
    感觉机会不大:首先这个东西需要浏览器的支持,苹果方面因该有顾虑,绕过审核直接上线;其次这个东西在国内推进也是困难重重,各大厂商定制化系统,再就是谷歌的东西太容易被墙;最后这个没有商业化的闭环,不能为开发者提供用户资源等,很难和国内BAT小程序和快应用等抗衡。 总之,前途堪忧。
    2019-10-08
    5
  • Taopoppy
    老师,后面来一门前端优化的课程,和这个课就搭上了
    2019-10-06
    4
  • mfist
    如果PWA能够从操作系统(andriod)层面切入应该会和当前的快应用、小程序分一杯羹。技术之间是互相学习和进步的,未来技术可能会趋同,找到一个浏览器应用(pwa)、大流量应用(微信、支付宝的小程序)、手机厂商(快应用)都满意的方案
    2019-10-06
    1
  • William
    已经进入了呀,现在安卓各大应用商店很对应用都有提供快应用。免安装,无广告,用完即走
    2019-10-05
    1
  • 宇宙全栈
    我觉得 PWA 从商业角度和技术角度来看都没有足够的优势进入移动端,因为目前移动端的商业生态已经成熟,并且小程序技术和 Flutter 技术已经抢占了先机。商业上,目前的移动端生态已经成熟,iOS 会阻止 PWA 破坏它的生态,就像阻止小程序一样。Android 生态中,如果 Google 如果能把 Android 变成直接支持 PWA 的操作系统,可能会有一些帮助,但是帮助不大。技术上,微信等各大超级 App 都已经使用了小程序技术,也就是说小程序技术已经抢占了先机。另外,Flutter 技术也在进入移动端,所以 PWA 在技术上的竞争太激烈。
    2019-10-05
    1
  • Cris
    老师,能否透露下您看好pwa的理由?
    2019-10-22
  • 再学习
    作为新一代“浏览器”,国内有小程序,国外有PWA。
    认为在国外PWA会发展的不错,国内因为用户对微信的依赖,可能还是小程序发展的更好。
    2019-10-09
  • Geek_b63d98
    instgram twitter webpackdocumention
    2019-10-09
  • 柒月
    可以的。我觉得后面整个移动设备的系统就是一个浏览器。
    好处的话就像现在的小程序,不用下载安装,随用随走。
    难点的话一个是用户体验,流畅性方面。另一个的话就是跟手机底层硬件的交互能力了。
    2019-10-05
收起评论
9
返回
顶部