Files
Notebook-StarNet/aboutOthers.md
T
2024-12-13 11:17:19 +08:00

101 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 杂谈 记录一些碎碎念
---
npx 用来临时使用一个库(如 rollup)
---
强缓存和协商缓存的 header 参数
强缓存:
Expires:过期时间,如果设置了时间,则浏览器会在设置的时间内直接读取缓存,不再请求
Cache-Control:当值设为 max-age=300 时,则代表在这个请求正确返回时间(浏览器也会记录下来)的 5 分钟内再次加载资源,就会命中强缓存。
cache-control:除了该字段外,还有下面几个比较常用的设置值:
(1) max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;
(2) s-maxage:和 max-age 是一样的,不过它只针对代理服务器缓存而言;
(3)public:指示响应可被任何缓存区缓存;
(4)private:只能针对个人用户,而不能被代理服务器缓存;
(5)no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到 请求,然后判断资源是否变更,是则返回新内容,否则返回 304,未变更。这个很容易让人产生误解,使人误 以为是响应不被缓存。实际上 Cache-Control: no-cache 是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。
(6)no-store:禁止一切缓存(这个才是响应不被缓存的意思)。
---
mvvm:
vm: 关注绑定器,将数据和视图绑定,自动更新,低耦合。model仅关注数据更新
---
垃圾回收相关:
window.gc: 手动调用垃圾回收
现代主要使用标记清除法。
进入执行环境的时候标记上。
离开环境的时候直接回收。
常见的内存泄漏:
全局变量,解决方式: 全局变量
定时器未清除:记得及时清除
闭包: 解决方式: 及时设置为null
dom元素删除后未清除: 解决方式: 及时设置为null
栈(Stack)
特点:栈是一种后进先出(LIFO, Last In First Out)的数据结构。
存储内容:用于存储简单的数据类型(如数字、字符串、布尔值)和函数调用上下文。
内存分配和释放:内存分配和释放非常快速,直接在栈顶操作。函数调用结束后,栈帧自动释放。
作用:主要用于管理函数调用和局部变量。
堆(Heap)
特点:堆是一种无序的数据结构,用于动态分配内存。
存储内容:用于存储复杂的数据类型(如对象、数组)。
内存分配和释放:内存分配比较灵活,但管理和回收内存需要垃圾回收机制(GC, Garbage Collection)来处理。
作用:用于存储需要动态分配的较大数据块和复杂数据结构。
---
babel相关:
Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。
---
es6几个主要的:
1. let, const
2. 箭头函数
3. class
4. 模板字符串
5. 解构
6. 函数传参默认值&rest
---
http响应头请求头
请求头:
content-type: 请求的数据的类型
Authorization: 身份验证,如JWT这样的
UA: 浏览器环境
响应头:
set-cookie
content-length
cache-control
跨域cookie需要服务器进行设置
---
SEO优化
1. 大量使用语义化标签
2. 保证关键词覆盖率,title之类,配置meta信息
3. 制定一个站点地图,放在“robot.txt”中
4. 结构化数据