# devtools 使用

效率是第一生产力:https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&album_id=1349545506497855489&__biz=MzA5NjM5MjM1Nw==&scene=21#wechat_redirect

# Elements

  • alt + dom 节点前的小三角可以快速展开子节点。
  • shift + 鼠标左键,可快速切换颜色的 rgba hsl 等类型。
  • 节点断点,可通过 break on 添加,在 Dom breakpoints 中查看。
  • 鼠标右键 Force State 可为元素添加状态进行调试。
  • 双击可修改盒模型。

# Console

  • Esc 快捷键让 Console 在每个面板都能显示。
  • 相同的消息默认是堆叠的,可以通过 ctrl+shift+p 输入 time 命令或者设置中找到 timestamps 命令,给消息加上时间戳。
  • 在调试环境下的断点内,可以获取局部变量值。
  • 执行环境(选择当前页面还是 iframe 页面)。
  • 右侧齿轮设置:
    • 通过 Preserve log 选择保留历史记录,即刷新页面后是否还显示先前的消息。
    • 通过选项Log XMLHttpRequest选择是否输出所有 XMLHttp 请求日志(可以监控页面所有 ajax 请求 定位其代码调用栈)。
  • $ 字符的相关使用:
    • 可以通过 $0,获取当前在 Elements 面板所选中的元素节点。
    • $_可以引用上一次执行的结果。
    • $$ 是 document.querySelectorAll 方法的更佳替代,因为 document.querySelectorAll 返回的是 nodeList(NodeList),而$$能直接返回数组(Array)。
    • 如果需要使用 npm 的包,可以安装 Console Importer 插件,用$i方法引入 npm 中的库: $i('react')。
      • https://github.com/pd4d10/console-importer/issues/3 可以关闭,但是没必要。在掘金网站上使用,它没有开启 CSP 。
  • console 命令的使用:
    • 可以使用 console.time()和 console.timeEnd()方法来测量时间差。
    • monitor(function)方法来追踪函数调用信息,当函数被执行,会输出追踪信息。
    • monitorEvents(el,eventType)方法来追踪事件。

# Sources

# Network

# Performance

# 浏览器并发请求数

  • 现象:同一时间针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞。

  • 原因:基于端口数量和线程切换开销的考虑,浏览器不可能无限量的并发请求。

  • 导致:有大量请求的站点,响应较慢,因为并发请求会被阻塞。

  • 解决方法:

    • 用不同域名(hash domain,cookie free) 例如知乎的图片都是放在 zhiimg.com 域名下获取的。cookie free 是指,例如知乎主站 zhihu.com域名下有很多 cookie,换成 zhihuimg.com 请求图片时,就不会把 zhihu 上的cookie发过去,减小所需带宽。
    • 减少请求数 雪碧图 合并压缩css/js(另一个原因是为了减少重绘) 利用 Cache-Control 等缓存静态资源,在更新静态资源时使用不同 url 或文件名带上版本 懒加载,出现再加载。
更新时间: 2022年4月22日星期五 18:09