-
重学前端-13 | 浏览器:一个浏览器是如何工作的?(阶段四)
浏览器进行到这一步,我们已经给 DOM 元素添加了用于展现的 CSS 属性,接下来,浏览器的工作就是确定每一个元素的位置了。我们的基本原则仍然不变,就是尽可能流式地处理上一步骤的输出。 在构建 DOM 树和计算 CSS 属性这两个步骤,我们的产出都是一个一个的元素,但是在排版这个步骤中,有些情况下,我们就没法做到这样了。 尤其是表格相关排版、flex 排版和 grid 排版,它们有一个显著的特点,那就是子元素之间具有关联性。有意思,但内容讲的不深入…
-
重学前端-12 | 浏览器:一个浏览器是如何工作的?(阶段三)
首先 CSS 选择器这个名称,可能会给你带来一定的误解,觉得好像 CSS 规则是 DOM 树构建好了以后,再进行选择并给它添加样式的。实际上,这个过程并不是这样的。我们回忆一下我们在浏览器第一节课讲的内容,浏览器会尽量流式处理整个过程。我们上一节课构建 DOM 的过程是:从父到子,从先到后,一个一个节点构造,并且挂载到 DOM 树上的,那么这个过程中,我们是否能同步把 CSS 属性计算出来呢? 答案是肯定的。 在这个过程中,我们依次拿到上一部构造好的元素,去检查它匹配到了哪些规则,再根据规...…
-
重学前端-11 | 浏览器:一个浏览器是如何工作的?(阶段二)
绝大多数语言的词法部分都是用状态机实现的。实现状态机的方式大同小异:我们把每个函数当做一个状态,参数是接受的字符,返回值是下一个状态函数。(这里我希望再次强调下,状态机真的是一种没有办法封装的东西,所以我们永远不要试图封装状态机。)到底什么是状态机,其实iOS中也很多有用这个,这里有个简单的例子,液体固体气体状态机:https://juejin.im/entry/5bc687d4e51d4539701ea432…
-
iOS开发高手课-09 | 无侵入的埋点方案如何实现?
有点用吧…
-
iOS开发高手课-08 | 如何利用 Clang 为 App 提质?
不知所云…
-
iOS开发高手课-07 | Clang、Infer 和 OCLint ,我们应该使用谁来做静态分析?
哎…
-
iOS开发高手课-06 | App 如何通过注入动态库的方式实现极速编译调试?
算了…
-
iOS开发高手课-05 | 链接器:符号是怎么绑定到地址上的?
这个高深的东西,看了也没用…
-
iOS开发高手课-15 | 日志监控:怎样获取 App 中的全量日志?
用处不大吧…
-
iOS开发高手课-14 | 临近 OOM,如何获取详细内存分配信息,分析内存问题?
不懂…