-
html标签的property和attribute
property:修改标签对象属性,不会体现到html结构中
attribute:修改html属性,会改变html结构
这两者都可能引起DOM的重新渲染
2. #### 一次性插入多个标签如何优化性能
向无序列表中插入多个子标签
<body>
<ul id="list"></ul>
</body>
<script>
const list=document.getElementById("list")
//创建代码片段
const frag=document.createDocumentFragment()
for (let i = 0; i < 10; i++) {
const li=document.createElement('li')
li.innerHTML=i
//此处若直接向list插入,性能较差
frag.appendChild(li)
}
//插入代码片段重新渲染
list.appendChild(frag)
</script>
-
http状态码
| Status | 含义 |
|---|---|
| 1xx | 服务器接收到请求 |
| 2xx | 请求成功,如200 |
| 3xx | 请求重定向,如301永久重定向,302临时重定向,304资源未修改 |
| 4xx | 客户端错误,如404请求地址不存在,403没有权限 |
| 5xx | 服务器错误,如500服务器出错。504网关超时 |
-
http请求头
| request header | 含义 |
|---|---|
| Accept | 客户端支持的数据类型 |
| Accept-Charset | 客户端采用的编码 |
| Accept-Encoding | 客户机支持的数据压缩格式 |
| Accept-Language | 客户机的语言环境 |
| Host | 告诉服务器,想访问的主机名 |
| If-Modified-Since | 资源的缓存时间 |
| User-Agent | 客户机的软件环境 |
| Cookie | 可以向服务器带数据 |
| Connection | 请求完后是关闭还是保持链接 |
| Referer | 告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链) |
| response header | 含义 |
|---|---|
| Location | 配合302状态码使用,客户端重定向地址 |
| Server | 服务器的类型 |
| Last-Modified | 告诉浏览器当前资源的缓存时间 |
| ETag | 缓存标识 |
| Expires | 告诉浏览器把回送的数据缓存多长时间。-1或0不缓存 |
| Cache-Control和Pragma | 控制浏览器不缓存数据 |
-
Restful API
一种新的API设计方式
传统API设计:把每个url当做一个功能
Restful API设计:把每个url当做唯一的资源
| method | 含义 |
|---|---|
| GET | 获取数据 |
| POST | 新建数据 |
| PATCH/PUT | 更新数据 |
| DELETE | 删除数据 |
Restful API的特点
-
不使用url参数
-
用method表示操作类型
-
http缓存
将无需重复请求的资源暂存,在下一次请求时从本地读取,无需重复请求
强制缓存:cache-control max-age 最大缓存时间(秒) no-cache不进行强制缓存
协商缓存:Last-Modified最后修改时间
Etag资源唯一标识(优先级更高)
-
http和https
http是明文传输协议,数据容易被劫持
https是http+加密,就算数据被劫持也无法解密
对称加密:使用同一个key加密和解密数据
非对称加密: 一对key,A加密后,只能用B解密
https同时使用非对称和对称加密,为了安全和节省成本