Skip to main content

综合笔记

[toc]

开发准备

命令含义
netstat -anp查看端口占用
ss -anp查看端口占用
ps aux查看进程
systemctl查看系统服务
systemctl status [服务名称(例如:nginx)]查看具体服务状态
systemctl stop [服务名称(例如:nginx)]停止服务
systemctl start [服务名称(例如:nginx)]开始服务
traceroute www.baidu.com查看网络请求经过的路由

测试工具

工具名称功能特性
karma集成测试框架
selenium-webdrivere2e 测试(功能测试)

浏览器缓存策略

  1. 强缓存

    expires: 过期时间

  2. 协商缓存

协商缓存分类

缓存策略功能特性
Etag/If-None-Match优先级高
Last-modified/If-Modified-Since优先级低

image image

浏览器渲染流程

image

nodejs 部署策略

  1. 高防 ip(隐藏真实 ip)
  2. nginx/Lvs/k8s(负载均衡)
  3. PM2
  4. nodejs

nodejs

观察者

观察者类型特征例子
idle 观察者效率最高,消费资源小,但会阻塞 CPU 的后续调用process.nextTick()
IO 观察者精确度不高,可能有延迟执行的情况发生,且因为动用了红 黑树,所以消耗资源大;setTimeout()
check 观察者消耗的资源小,也不会造成阻塞,但效率也是最低的setImmediate()

idle 观察者 > Promise.then > IO 观察者 > check 观察者

宏任务与微任务

类型包含内容
macro-task(宏任务)script(整体代码), setTimeout, setInterval, setImmediate,I/O, UI rendering
micro-task(微任务)process.nextTick, Promise(原生), Object.observe, MutationObserver

webworker 的性能问题

webworker 与主线程通信时 数据采用 postMessage 通信,数据使用 结构化克隆算法,数据量大时会产生性能问题,可以采用 shareWorker 优化