Итак, я занимаюсь оптимизацией на своем веб-сайте, чтобы улучшить оценки Page Insights. Я могу обратиться к двум пунктам: -
- Служить изображениям в форматах следующего поколения
- Отложите закадровые изображения
Поэтому изображения в форматах следующего поколения я решил использовать WebP, но мне нужно включить запасные варианты, чтобы они работали во всех браузерах / устройствах.
Отложить закадровые изображения;Я использую data-src
с небольшим количеством JS-скрипта, чтобы установить фоновое изображение в качестве data-src, JS заменяет исходный SRC, который является src="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
. В качестве примера рассмотрим приведенное ниже.использовать встроенное фоновое изображение с WebP с отступлениями во время отсрочки закадровых изображений?
HTML
<div id="working-bg" class="parallax" data-src="/wp-content/uploads/2016/08/silva-planning-parralax.jpg" style="background-image: url(/wp-content/uploads/2016/08/silva-planning-parralax.jpg)"></div>
JS для data-src
<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} }
var imgDeferSpan = document.querySelectorAll('span[data-src]');
var styleSpan = "background-image: url({url})";
for (var i = 0; i < imgDeferSpan.length; i++) {
imgDeferSpan[i].setAttribute('style', styleSpan.replace("{url}", imgDeferSpan[i].getAttribute('data-src')));
}
var imgDeferDiv = document.querySelectorAll('div[data-src]');
var styleDiv = "background-image: url({url})";
for (var i = 0; i < imgDeferDiv.length; i++) {
imgDeferDiv[i].setAttribute('style', styleDiv.replace("{url}", imgDeferDiv[i].getAttribute('data-src')));
}
}
window.onload = init;
</script>
Заранее спасибо!