javascript - 我实际上能以多快的速度为网站图标设置动画?
问题描述
我有一个预先存在的 HTML 文档,其中定义了以下网站图标:
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="shortcut icon" href="/img/favicon.ico">
所有网站图标图像在内容方面都是相同的,但以不同的分辨率存储。在同一目录中,我也有每个图标的略有不同的版本,在文件名中favicon
被替换为favicon2
。
我正在考虑一个至少需要大约 11 fps 才能完成的动画创意。我拼凑了一些愚蠢的 JS,看看我可以多快地更新网站图标而不实际实现任何效果,结果有点失望:
var flipflop = false;
setInterval(function() {
flipflop = !flipflop;
document.querySelectorAll('link[href*="favicon"]').forEach(function(el) {
var href1 = el.href.replace(/favicon2?/, 'favicon'),
href2 = href1.replace('favicon', 'favicon2');
el.href = flipflop ? href1 : href2;
});
}, 100);
即使在 100 ms / 10 fps 下,动画也很不稳定(至少在 Firefox 68 中)。有些帧的使用寿命明显比其他帧长。如果我进一步降低它,它会开始明显丢帧。
我知道代码本身正在以足够的速度执行,只是没有像我想要的那样经常刷新图标。我尝试过使用requestAnimationFrame
insetInterval
没有明显改善。
我还没有找到另一个技巧,或者这不是浏览器旨在以这种速度执行的操作?
解决方案
推荐阅读
- python - 我需要对一系列问题进行假设检验
- django-rest-framework - 用户注册时如何创建对象
- html - How do I make a button stay "Pressed" after clicking
- go - How to add JWT auth to swagger (go + echo + swaggo/swag)
- java - 授予权限后如何启动应用程序?
- javascript - 什么是回调处理程序?
- sparklyr - 适用于 Sparklyr 的 Spark 兼容版本
- javascript - 每次我录制时,MediaRecorder 都会将最后一个音频与新音频附加在一起
- c# - 从组合框获取数据并使用它来获取另一个组合框中的数据
- acumatica - 在报告中显示附加的图像文件