综合笔记
[toc]
开发准备
命令 | 含义 |
---|---|
netstat -anp | 查看端口占用 |
ss -anp | 查看端口占用 |
ps aux | 查看进程 |
systemctl | 查看系统服务 |
systemctl status [服务名称(例如:nginx)] | 查看具体服务状态 |
systemctl stop [服务名称(例如:nginx)] | 停止服务 |
systemctl start [服务名称(例如:nginx)] | 开始服务 |
traceroute www.baidu.com | 查看网络请求经过的路由 |
测试工具
工具名称 | 功能特性 |
---|---|
karma | 集成测试框架 |
selenium-webdriver | e2e 测试(功能测试) |
浏览器缓存策略
-
强缓存
expires: 过期时间
-
协商缓存
协商缓存分类
缓存策略 | 功能特性 |
---|---|
Etag/If-None-Match | 优先级高 |
Last-modified/If-Modified-Since | 优先级低 |
浏览器渲染流程
nodejs 部署策略
- 高防 ip(隐藏真实 ip)
- nginx/Lvs/k8s(负载均衡)
- PM2
- 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
优化