2018 年 10 月 26 日

其他方式的nextTick

这几天利用空余时间在完成一个去年未尽的活:从零开始实现一个Promise。 浏览器中原生的Promise,then里面的回调被放入事件循环中的微任务队列,而setTimeout的回调则被放入了宏任务队...

进一步了解
2018 年 10 月 13 日

DFS与BFS

DFS与BFS实现,考虑到递归有爆栈的可能,所以,采用循环来做,实现思路都是通过维护一个stack,只是入栈的规则不一样。 以遍历DOM节点为例: function dfs(node) { const...

进一步了解
2018 年 10 月 08 日

Cookie那些事儿

面试别人的时候,经常碰到自诩精通HTTP协议的人,我一般会丢个问题“HTTP协议是否有状态?”,来试探是否真的“了解”HTTP协议,很多人听到问题就懵逼了,这TM还是我认识的HTTP协议么。偶尔碰到一...

进一步了解
2018 年 09 月 30 日

现阶段我所理解的事件循环

流程如图: 浏览器与Nodejs比较,首先相同点: 微任务都是需要清空后再执行后续任务,也就是说,微任务中产生的其它微任务也会被加入到本轮循环的微任务队列末尾执行。 不同点: 1. Nodejs流程会...

进一步了解
2018 年 09 月 28 日

那些年被我们忽视的Vary:Origin

之前刷知乎有看到一篇文章,讲Vary头未配置引起资源缓存错乱的问题,当时只是大概瞄了下,对Vary这个头有了点印象,便没有继续深究。 今天同事碰到一个奇怪的bug,由于chrome65开始禁止通过a标...

进一步了解
2018 年 08 月 11 日

HTTPS握手时序图

大图 感觉还有些不明白的地方,等明白了再补上。 源码: title HTTPS Handshake Client->Server: 1.协议版本\n2.加密方式列表\n3.支持的压缩算法\n4....

进一步了解
2018 年 06 月 29 日

Promise杂谈

最近又花时间理了一下Promise的设计逻辑,有一些小收获整理下。 控制反转(IOC) 如果我们使用Spring(Java)或Laravel(PHP)这样的后端语言框架,我们不可避免的会与控制反转(I...

进一步了解
2018 年 06 月 28 日

两个关于Promise的坑

1.Promise.race Promise.race用于处理一般竞态问题,参数为一个迭代器可迭代对象,该对象中的任意成员状态发生改变,Promise.race返回的promise状态随即发生改变。 ...

进一步了解