
获得徽章 25
- #每天一个知识点# 浏览器是如何解析CSS选择器的?
在生成渲染树的过程中,渲染引擎会根据选择器提供的信息来遍历 DOM 树,找到对应的 DOM 节点后将样式规则附加到上面。
浏览器遵循 “从右往左” 的规则来解析 CSS 选择器!
**从右往左:`span => h3 => .mod-nav`**
0. 先找到所有的 `span` 节点 ,然后基于每⼀个 `span` 再向上查找 `h3`
1. 由 `h3` 再向上查找 `.mod-nav` 的节点
2. 最后触及根元素 `html` 结束该分⽀遍历
从右向左的匹配规则, 只有第一次会遍历所有元素找节点, 而剩下的就是在看父辈祖辈是否满足选择器的条件, 匹配效率大大提升!展开赞过评论3 - 常见的HTTP请求头和响应头
HTTP Request Header
Accept:浏览器能够处理的内容类型
Accept-Charset:浏览器能够显示的字符集
Accept-Encoding:浏览器能够处理的压缩编码
Accept-Language:浏览器当前设置的语言
Connection:浏览器与服务器之间连接的类型
Cookie:当前页面设置的任何Cookie
Host:发出请求的页面所在的域
Referer:发出请求的页面的URL
User-Agent:浏览器的用户代理字符串
HTTP Responses Header
Date:表示消息发送的时间,时间的描述格式由rfc822定义
server:服务器名称
Connection:浏览器与服务器之间连接的类型
Cache-Control:控制HTTP缓存
content-type:表示后面的文档属于什么MIME类型
Content-Type
常见的 Content-Type 属性值有以下四种:
(1)application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。该种方式提交的数据放在 body 里面,数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL转码。
(2)multipart/form-data:该种方式也是一个常见的 POST 提交方式,通常表单上传文件时使用该种方式。
(3)application/json:服务器消息主体是序列化后的 JSON 字符串。
(4)text/xml:该种方式主要用来提交 XML 格式的数据。 #每天一个知识点#展开等人赞过74 - RxJS 中 Observables 分为两种:Cold Observables 和 Hot Observables,这两个到底有什么区别呢?
#每天一个知识点# 我们先来看下【RxJS官方】给出的解释:
Cold observables start running upon subscription, i.e., the observable sequence only starts pushing values to the observers when Subscribe is called. (…) This is different from hot observables such as mouse move events or stock tickers which are already producing values even before a subscription is active.
翻译过来就是:
Cold Observables 只有被 observers 订阅的时候,才会开始产生值。是单播的,有多少个订阅就会生成多少个订阅实例,每个订阅都是从第一个产生的值开始接收值,所以每个订阅接收到的值都是一样的。
Hot Observables 不管有没有被订阅都会产生值。是多播的,多个订阅共享同一个实例,是从订阅开始接受到值,每个订阅接收到的值是不同的,取决于它们是从什么时候开始订阅。展开评论点赞