call me saisai

Results 4 comments of call me saisai

> 感谢回答,还是不太理解,每一轮Tick应该包括宏任务和微任务,异步不一定都在下轮,渲染发生在两个Tick之间,举个例子: > 假设是同步更新队列, > this.message = '更新完成' > this.message = '更新完成2' > this.message = '更新完成3' > this.message = '更新完成4' > �这里同步执行完,这一轮Tick没有微任务,然后开始渲染,应该也只会渲染 '更新完成4' 。没明白为什么会渲染4次dom,这是我的理解,困扰我一个月了,求解答,谢谢 别把问题局限在渲染这一块,想想渲染之前发生了什么。假设这里是同步更新队列, this.message = '更新完成'。大致会发生这些事:message更新->触发setter->触发Watcher的update->重新调用render->生成新的vdom->dom-diff->dom更新。这里的dom更新并不是渲染(布局,绘制,合成等一系列步骤),而是更新内存中的DOM树结构。之后再运行this.message = '更新完成2',再重复上述步骤,之后的第三次和第四次更新同样会触发相同的流程。等开始渲染的时候,最新的DOM树中确实只会存在...

https通信的过程中会不会存在如下情况?既然证书的公钥是公开的,那么攻击者也可能会有相关CA证书的公钥。当客户端向服务器发起请求的时候,服务器返回公钥证书的过程被攻击者拦截。那么从理论上来说,攻击者有CA公钥,它是可以解密出证书中的服务器的私钥的,解密后,再把原证书返回给客户端。但此时攻击者有了服务器的公钥,这样后面通信的过程也是挺危险的。

> > https通信的过程中会不会存在如下情况?既然证书的公钥是公开的,那么攻击者也可能会有相关CA证书的公钥。当客户端向服务器发起请求的时候,服务器返回公钥证书的过程被攻击者拦截。那么从理论上来说,攻击者有CA公钥,它是可以解密出证书中的服务器的私钥的,解密后,再把原证书返回给客户端。但此时攻击者有了服务器的公钥,这样后面通信的过程也是挺危险的。 > > 公钥解密不出私钥啊, 公钥只能用来解密服务器往客户端发送的数据。虽然攻击者可以解密S->C的数据也没卵用。因为连接建立以后就用客户端生成的对称加密密钥(会话密钥)来通信了。 > > ### 再仔细看看这张图 > ![](https://camo.githubusercontent.com/149d65173b307d424c78a93987dbfdaeb4f8722c/68747470733a2f2f757365722d676f6c642d63646e2e786974752e696f2f323031392f342f32322f313661343538333963656163626235323f773d3138333426683d3130383026663d706e6726733d313537363832) 目前明白了,没有在整个流程上想。

> 而被重写的 constructor 能否用 obj[prop] !== proto[prop] 来判断呢?楼主觉得也是可以的,如果没有被重写,那么 obj.constructor === obj.constructor.prototype.constructor 返回 true,如果被重写,obj.constructor === Object.prototype.constructor 返回 false。 楼主,你感觉下面的这种情况有意义吗?但是这种情况用的场景还是挺多的,就是显示声明一个对象的constructor。这个时候,严谨的说是更改constructor的指向 ``` javascript var obj = {constructor:Object} //这时候 obj.constructor === Object.prototype.constructor //true ```