我最近将我网站上的所有图标都切换为 SVG 图标/图像。我从一个精灵文件中提供所有的 SVG。我正在使用 Chrome Dev Tools Performance 来尝试优化资源的加载。看到这个 SVG 文件的加载总共需要 10.61 秒,我感到非常惊讶。“网络传输”耗时 141.71 毫秒,“资源加载”耗时 10.47 秒。从这张图来看,资源加载似乎也阻塞了很多其他的事情。完全披露的是,在此测试期间,我正在节流 CPU 以优化最坏情况下的性能。
但是我不明白这么小的文件如何需要 10.47 秒才能加载资源?
SVG 文件详细信息:
未压缩大小:51,183 字节
文件路径:/web_root/images/svg/all.svg
文件布局(文件中大约有 20 个左右的符号):
<svg preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style>
g { display: none }
g:target { display: inline }
</style>
<symbol viewBox="0 0 512 512" id='twitter_solid' class='solid'>
<g>
.......
</g>
</symbol>
<symbol>.....</symbol>
....
<symbol>.....</symbol>
</defs>
</svg>
我在 HTML 代码/标记中使用它的方式如下:
<svg><use xlink:href="/images/svg/all.svg#twitter_solid"></use></svg>
我对这个精灵做错了吗?我是否以错误的方式创建它?我是否在 HTML 标记中以不正确的方式使用/注入它?这个文件很小,图标/符号也很少,我不敢相信即使在受限制的 CPU 上也要花这么长时间来“资源加载”,除非我做的事情非常不正确。
任何建议将不胜感激!提前致谢!