一篇学习 MutationObserver 的文章
背景
今天调整新主题的时候,在重新设计友链样式的时候想保留原本的随机背景颜色,之前数量少的时候似乎不太明显,现在本地测试发觉加载太慢了。于是上网寻找解决思路,找到了 MutationObserver 这个 API,于是就学习了一下//此处记录一下学习过程。
需求分析
我有不知数量的div元素,每个div元素都有一个class名为friend-link-div
,我需要在每个单个的div元素被加载完成的同时,对它设置一个随机的背景颜色。而不是等待整个页面或窗口加载完毕
想法分析
window.onload
和'DOMContentLoaded'
的问题
原本的实现代码:
|
|
原本的思路就是简单的在页面加载完成后,获取所有的友链元素,然后给每个元素设置一个随机的背景颜色。但是这样的实现方式有一个问题,就是当友链数量较多的时候,会导致页面加载变慢,因为每次都要重新计算随机颜色,并且在等待本页面加载的时候,友链的背景颜色是白色的,这样会导致页面的视觉体验不好。