scrolldog

不会拖慢浏览器的可爱 Chrome 扩展程序

装饰性浏览器扩展程序确实有个名声,而且大多数时候名副其实:又重又啰嗦,安装时带着一份没人读过的权限列表。这实在可惜,因为这个品类本身很有意思,而它的每一个问题其实都可以避免。

值得检查的三件事

为什么布局才是真正咬人的那个

读取一个布局属性——一个元素的高度、它在屏幕上的位置——会迫使浏览器先完成所有待处理的布局工作,才能给出答案。要是在滚动事件处理函数里这么做,就相当于要求浏览器在一个还画到一半的页面上,每秒停下来测量六十次。

这正是大多数「这个扩展程序让滚动变卡」抱怨背后的机制,而且在有人对它做性能分析之前,它是看不见的。修复的办法并不光鲜:滚动过程中绝不读取布局,只写入 transform,把移动的工作交给合成器去做。

在这里长什么样

scrolldog 是一只小小的像素宠物,沿着每个页面的边缘以你的滚动速度奔跑。它同时也是上述检查项的一个实际范例,因为它必须先通过这些检查,才配得上被人容忍地留在浏览器里:

以上这些都不是在自夸——这只是最低要求。一个存在的全部意义就是好看的东西,没有任何理由让别的什么东西变慢。

看看这只狗