一道面试题探究宏任务与微任务


​以下内容参考 极客时间 - <<浏览器工作原理与实践>> 专栏

宏任务

前面我们已经介绍过了,页面中的大部分任务都是在主线程上执行的,这些任务包括了:

  1. 渲染事件(如解析 DOM、计算布局、绘制);
  2. 用户交互事件(如鼠标点击、滚动页面、放大缩小等);
  3. JavaScript 脚本执行事件;网络请求完成、文件读写完成事件。

为了协调这些任务有条不紊地在主线程上执行,页面进程引入了消息队列事件循环机制,渲染进程内部会维护一个消息队列。然后主线程采用一个 for 循环,不断地从这些任务队列中取出任务并执行任务。我们把这些消息队列中的任务称为宏任务。消息队列中的任务是通过事件循环系统来执行的


解决MacBook Pro连接电源后不能充电的问题


问题原因

在极少数情况下,如 macOS 升级期间电源故障,配备 Apple T2 安全芯片的 Mac 可能会没有反应,所以必须修复芯片上的固件。包括MacBook Pro(13 英寸,2018 年,四个雷雳 3 端口)或后续机型, MacBook Pro(15 英寸,2018 年)或后续机型。

MacBookPro解决办法

1.按下睡眠/唤醒按钮大约 5 秒钟以将 Apple 便携式电脑关机。
2.将线缆插入到 Apple 便携式电脑左侧右边的雷雳端口。
图1
图2

3.按住电源按钮的同时,按下以下所有三个按键大约 3 秒钟:

  • 右 Shift 键
  • 左 Option 键
  • 左 Control 键

【注】您将看不到 Apple 便携式电脑的任何屏幕活动。

其他机型参考

在 Apple Configurator 2 中修复或恢复 Mac 固件


github, gist, git clone加速全攻略


原因分析

git clone特别慢举例, 是因为github.global.ssl.fastly.net域名被限制了。只要找到这个域名对应的ip地址,然后在hosts文件中加上ip–>域名的映射,刷新DNS缓存便可。

1. 查找域名对应的ip地址

nslookup是常用域名查询工具,就是查DNS信息用的命令

查看 github.global.ssl.fastly.Net (对应git clone)

$ nslookup github.global.ssl.fastly.Net

Server:        10.155.5.4
Address:    10.155.5.4#53

Non-authoritative answer:
Name:    github.global.ssl.fastly.net
Address: 69.63.184.14