- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通常,我尝试使用 CSS 制作所有视觉效果。但有时,无论是明确的客户端请求还是因为所需的效果对于 CSS 来说太复杂,我需要使用 JS 库。一个这样的例子是 Particles.js .
尽管描述称它是轻量级的,但使用它会显着影响我的 PageSpeed Insights 分数。例如,看一下 the Insights对于 the library's demo page ,这非常简单。由于页面简单,总体得分相当不错,但渲染和脚本评估时间都很高。
如果我对库本身没有任何控制权,并且没有更高效的库可用*,我可以采取什么措施来提高性能?
我可以使用什么方法来最大程度地减少如此繁重的视觉效果脚本的影响?例如,我可以仅在设备足够强大来处理效果时加载效果吗?是否可以取消效果的优先级,以便任何延迟都不会影响页面的其余部分?
*对于这个特定的库来说,情况可能是这样,也可能不是,但我们假设没有更好的库。
最佳答案
使用requestAnimationFrame(以及使用它的库)总是会增加渲染和脚本评估时间。这不一定是坏事,但您并不总是能够控制外部库。
一个选项是向动画添加一个图层。像这样的事情只会给动画增加很少的开销,但如果帧速率开始下降,则会取消它:
它看起来像这样:
let startTime = Performance.now() // precise start time
const animation = new MyAnimationLib()
const updateLoop = newTime => {
const delta = newTime - startTime
startTime = newTime
if (delta > 1000 / 60) {
animation.cancel() // 60 fps min to keep running animation
return // exit the loop
}
requestAnimationFrame(updateLoop)
}
// Start monitoring the animation
requestAnimationFrame(updateLoop)
关于javascript - 我可以优化库中的重主线程 JavaScript 视觉效果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60572938/
有人可以向我澄清主线 DHT 规范中的声明吗? Upon inserting the first node into its routing table and when starting up th
我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。 我知道 Android 从大容量存储设备切换到 MTP 设备已经有一段时间了,并且找到了 source code for M
我是一名优秀的程序员,十分优秀!