所以我想知道,在SVG中,过滤器必须像这样应用:
<defs>
<filter id="foo">
<!-- let's pretend that it does something -->
</filter>
</defs>
<g filter="url(#foo)">
<!-- some graphic elements - or maybe instead of a <g> element it's a singular graphic -->
</g>
现在,这对文件来说是很多额外的重量,特别是当图像具有例如仅使用一次的过滤器时。但是,在 JavaScript 或 PHP 中,类似这样的东西:
someFunctionWithCallback(foo);
function foo(bar) {
// do stuff
}
可以这样简化:
someFunctionWithCallback(function(bar) {
// do stuff
});
有没有办法在 SVG 中做同样的事情? 例如,在我使用它的元素中声明一个过滤器,同时消除重量和存储它以供以后使用的需求?
典型的过滤器是几百个字节。平均生成的 SVG 有数十 KB 的废话,您可以对其进行优化。平均商业页面加载具有数百千字节的图像权重和可以优化的javascript。
不要花时间优化无关紧要的东西。