本文为阅读学习笔记,原文请戳原文题目链接:
第一周
-
index.android.js
和index.ios.js
分别作为Android手机和iOS手机上程序开始的入口 - RefreshControl(下拉刷新)
-
fetch
API 基于promise设计 - 主要讲异步处理和 Promise
- 使用await + fetch
try {
let response = await fetch(url);
let data = response.json();
console.log(data);
} catch(e) {
console.log("Oops, error", e);
}
// 注:这段代码如果想运行,外面需要包一个 async function
- 用于同构应用的
isomorphic-fetch
- Fetch 请求默认是不带 cookie 的,需要设置
fetch(url, {credentials: 'include'})
地址栏网址缓存
检查 HSTS 预加载列表
DNS 缓存
ARP(地址解析协议)缓存
TCP 发送缓冲区 & 接收缓冲区
-
HTTP 请求缓存( CDN 节点缓存、代理服务器缓存、浏览器缓存、后端动态计算结果缓存等 )
- 强缓存优先级 > 协商缓存优先级
- 强缓存:
Cache-Control
比Expires
优先级更高 - ETag 优先级 > Last-Modified 优先级。
第二周
-
- 构建DOM的过程中:
- 将字节数据=>字符串=>Token=>Node=>DOM。
- Token会标识出当前token是startTag,还是endTag。
- 构建DOM的过程中,不是等所有Token都转换完成后再去生成节点对象,而是一边生成Token一边消耗Token来生成节点对象。也就是每个Token被生成后,会立刻消耗这个Token创建出节点对象。
- 构建渲染树:
- 在渲染过程中遇到js时,不只是阻塞DOM的构建,它会导致CSSOM也阻塞DOM的构建。
- 因为js不只可以改DOM,它还可以更改样式,也就是它可以更改CSSOM。不完整的CSSOM是无法使用的,如果js想访问CSSOM并更改它,那么在执行js时,必须要能拿到完整的CSSOM。
- 因此浏览器会先下载和构建CSSOM,然后再执行JavaScript,最后在继续构建DOM。
- 构建DOM的过程中:
-
- git reflog 记录所有git操作
- git cherry-pick 挑选一个我们需要的 commit 进行操作。它可以用于将在其他分支上的 commit 修改,移植到当前的分支。
-
- margin: auto
- @supports
- css-doodle