title 属性时在鼠标悬停在图片上时展示的内容 alt 是图片不能正常加载的时候所展示的替代内容,会被搜索引擎重点解析
6. 下载 JS 脚本并执行,下载和执行期间停止对 DOM 和 CSSOM 的解析和构建 7. 脚本执行完毕后将 DOM 和 CSSOM 合并为渲染树,并渲染到页面上 8. 关闭页面时四次挥手断开连接
客户端和服务器端进行数据交互之前,首先要进行 TCP 连接,连接过程需要通过三次握手进行三次网络传输,交互完成后进行连接释放,释放时会进行四次网络传输完成四次挥手。 TCP中比较重要的字段有:
Seq序号(序号):占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记Ack序号(确认号):占32位,只有ACK标志位为1时,确认序号字段才有效,Ack = Seq + 1标志位:URG(紧急指针有效)、ACK(确认号有效)、PSH(接收方应尽快将报文交给应用层)、RSH(重新连接)、SYN(创建连接)、FIN(释放连接)三次握手:
客户端发送一串报文给服务器端,表示想要建立连接:SYN = 1, Seq = X,客户端进入 SYN-SENT状态服务器端确认接收报文,并返回一串报文表示可以建立连接:SYN = 1, Seq = Y, ACK = 1, Ack = X + 1,服务器端进入 SYN-SENT 状态客户端确认接收报文,返回一段报文表示建立连接:Seq = X + 1, ACK = 1, Ack = Y + 1四次挥手
客户端发送一串报文,表示断开连接:FIN = 1, Seq = X服务器端接收报文,并返回一段报文表示我准备好要释放连接了:Seq = Y, ACK = 1, Ack = X + 1服务器端发送报文,表示我已经释放连接了:FIN = 1, Seq = Z, ACK = 1, Ack = X + 1客户端接收报文,并返回一段报文表示我也释放连接了:Seq = X + 1, ACK = 1, Ack = Z + 1
CSSOM 和 DOM 是并行解析,越早引入 CSS 越节省时间 相反下载和执行 JS 脚本的时候,会停止对 CSSOM 和 DOM 的解析,所以越晚引入 JS 越好
重绘是指页面会重新进行绘制,在 CSSOM 节点发生变化但不会影响页面的整体结构时会进行重绘,即节点的宽高不发生变化。 重排是指页面会重新进行排列,在 CSSOM 节点发生变化且会影响页面结构时会进行重排。
浏览器内核分为渲染引擎和 JS 引擎,但随着 JS 引擎越来越独立,现在浏览器内核泛指渲染引擎 渲染引擎负责获取网页信息,计算网页的显示方式。内核不同,对页面的解释就不同,渲染效果就不同 JS 引擎负责解析和执行 JS ,来操作页面元素 常见浏览器内核:webkit(苹果)、Gecko(火狐)、Trident(IE)、Blink(谷歌)、Presto(欧鹏) CSS 私有前缀:
-webkit- :代表苹果(Safari)和谷歌(Chrome)浏览器的私有前缀-moz- :代表火狐的私有前缀-o- :代表欧鹏的私有前缀-ms- :代表 IE 的私有前缀
1XX:信息状态码
100:Continue 继续,一般在发送 POST 请求时,已发送了 http header 后,服务器响应此信息,表示确认,之后发送具体参数信息2XX:成功状态码
200:OK 正常返回信息201:Created 成功请求并且服务器创建了新的资源202:Accepted 服务器已接收请求,但未做处理3XX:重定向
301:Moved Permanently 请求的网页已永久移动到新的位置302:Found 临时重定向303:See Other 临时重定向,且总是用 GET 请求新的 URL304:Not Modified 自上次请求后,请求的网页未修改过4XX:客户端错误
400:Bad Request 服务器无法理解请求的格式401:Unanthorized 请求未授权403:Forbidden 禁止访问404:Not Found 找不到与 URL 相匹配的资源5XX:服务器端错误
500:Internal Server Error 最常见的服务器端错误503:Service Unanvailable 服务器端暂时无法处理请求(可能是过载或维护)
功能:
cookie 一般是用来确定用户身份而存储在浏览器端的数据,在每次向服务器发起请求时需要携带,并且在浏览器端和服务器端来回传递localStorage 和 sessionStorage 只是为了在浏览器端存储数据,不需要在每次请求的时候携带存储时间:
cookie 在设置了有效期时,当到达有效期后数据会被清除,如果没有设置有效期,则在浏览器窗口关闭后失效sessionStorage 在关闭浏览器或窗口后失效localStorage 除非主动删除,否则在浏览器或窗口关闭后依旧有效存储大小:
cookie 只能存储大小不能超过 4kblocalStorage 和 sessionStorage 能够存储 5M 甚至更大的数据
标签闭合、标签小写、不乱嵌套、使用外链 CSS 和 JS、结构行为表现的分离
rem 是参考自 html 标签中的 font-size 大小,例:html 标签中 font-size: 14px; ,则 1rem 为 14px
计算 rem :
假设屏幕宽度为 ScreenX(px),设计稿的宽度为 RealX(px),则令 n = ScreenX / RealX此时,设计稿中的一个元素宽度为 X ,假设这个元素在屏幕上宽度为 Y ,则 Y / ScreenX = X / RealX ,即 Y = X * ScreenX / RealX ,Y = X * N此时设置 html 标签中的 font-size: npx; ,则 1rem = n ,所以 Y = X rem
优雅降级和渐进增强是用来处理兼容性的两种方式。 优雅降级是指,一开始就考虑高级浏览器开发好完整功能,在逐步根据低版本浏览器的需求进行兼容。 渐进增强是指,一开始只根据低级浏览器开发基本功能,再针对高级浏览器开发效果,交互,提升用户体验。