检测 DOM 结点插入 • September 20, 2017
闲逛 Github 时碰见一个叫 SentinelJS 的库,声称能检测 DOM 结点的插入,顿时引起了好奇。因为以前无聊时也想过一下,没什么头绪,便不了了之。当时第一反应是该不会用轮询吧(比这粗暴的实现也不是没见过)。但看到 682 bytes (minified + gzipped…
巧妙监测元素尺寸变化 • July 15, 2017
在往下读之前不妨先想一下,你会怎么实现?如何知道元素的尺寸发生变化了? 相信很多人第一反应是 resize 事件,但这个只是 document view 变化才会触发。 然后就是轮询,反复查询值变化了没有。开销不是一般的大,但像这样的库(比如这个七年前的)现在还有人用。 最后便是这个,号称 event based…
闲读源码:ScrollingElement Polyfill • April 18, 2016
今天看了这篇文章,讲到 WebKit document.body.scrollTop 的问题。还有这里 Dev.Opera Blog : Fixing the scrollTop bug。 scrollTop, scrollLeft, scrollWidth, scrollHeight 都是跟滚动相关的属性。设置 scrollTop 和 scrollLeft…
V8 是如何实现 JavaScript Hoist 的 • March 29, 2015
首先 今天在知乎上看到一个问题“JavaScript有预编译吗?”,题主实际上是对 JavaScript 变量提升(hoist)机制的实现过程有疑惑。我刚知道 hoist 时也好奇过浏览器是怎么实现的,就跑去看了一下 V8 引擎的源码,做了一些笔记,现在正好趁机整理出来。 Hoist var 和 function 的 hoist 是老生常谈的问题,网上有大量资料,JavaScript 秘密花园 V…