Javascript 如何为您的网站加载模糊的惰性图像?
我有一个充满图片的网站,网站的性能很差 我想使加载的图像模糊,然后在滚动事件的图像将双加载 我正在使用PHP和Zend框架 我正在搜索一个java脚本库或php函数来帮助我生成一个延迟加载图像,但是我没有找到一个易于使用的,因为我不想替换所有的图像 我尝试了progressive-image.js,性能稍微提高了一点,我的主要目标是使请求数量最小化 有没有任何脚本可以和谷歌图片一样工作 我看过那个代码片段Javascript 如何为您的网站加载模糊的惰性图像?,javascript,php,html,css,zend-framework,Javascript,Php,Html,Css,Zend Framework,我有一个充满图片的网站,网站的性能很差 我想使加载的图像模糊,然后在滚动事件的图像将双加载 我正在使用PHP和Zend框架 我正在搜索一个java脚本库或php函数来帮助我生成一个延迟加载图像,但是我没有找到一个易于使用的,因为我不想替换所有的图像 我尝试了progressive-image.js,性能稍微提高了一点,我的主要目标是使请求数量最小化 有没有任何脚本可以和谷歌图片一样工作 我看过那个代码片段 function imageLoaded(e) { updateImage(e.t
function imageLoaded(e) {
updateImage(e.target, 'loaded');
}
function imageError(e) {
updateImage(e.target, 'error');
}
function updateImage(img, classname) {
// Add the right class:
img.classList.add(classname);
// Remove the data-src attribute:
img.removeAttribute('data-src');
// Remove both listeners:
img.removeEventListener('load', imageLoaded);
img.removeEventListener('error', imageError);
}
window.addEventListener('load', () => {
Array.from(document.getElementsByTagName('img')).forEach(img => {
const src = img.getAttribute('data-src');
if (src) {
// Listen for both events:
img.addEventListener('load', imageLoaded);
img.addEventListener('error', imageError);
// Just to simulate a slow network:
setTimeout(() => {
img.setAttribute('src', src);
}, 2000 + Math.random() * 2000);
}
});
})
如今,javascript是最常见的负担。花时间压缩、解析和编译—有时更大的图像可能会更快 还有其他方法,如使用
load=“lazy”
仅加载视口中的内容。不需要javascript!也更SEO友好
<img src="image.jpg" loading="lazy" alt="..." />
<iframe src="video-player.html" loading="lazy"></iframe>
还要看一下请求头,看看他们在请求什么
- 浏览器正在发送带有一系列格式的
。WebP可能会比jpg更大程度地减小大小,并且在有损压缩时仍然看起来不错accept type
- 他们还可以发送
请求头,以减少大小而不是速度,或者为他们提供一个更小的图像,然后进行放大保存数据
- 有些甚至发送,比如Accept CH:DPR、Width、Viewport Width
坦白地说,我已经在我的移动勇敢浏览器中禁用了javascript,因为有太多的垃圾邮件一直在显示。cookie notif、广告、订阅、权限请求,所以我更喜欢使用
load=“lazy”
您还可以查看响应图像的srcset现在,javascript是最常见的。花时间压缩、解析和编译—有时更大的图像可能会更快 还有其他方法,如使用
load=“lazy”
仅加载视口中的内容。不需要javascript!也更SEO友好
<img src="image.jpg" loading="lazy" alt="..." />
<iframe src="video-player.html" loading="lazy"></iframe>
还要看一下请求头,看看他们在请求什么
- 浏览器正在发送带有一系列格式的
。WebP可能会比jpg更大程度地减小大小,并且在有损压缩时仍然看起来不错accept type
- 他们还可以发送
请求头,以减少大小而不是速度,或者为他们提供一个更小的图像,然后进行放大保存数据
- 有些甚至发送,比如Accept CH:DPR、Width、Viewport Width
坦白地说,我已经在我的移动勇敢浏览器中禁用了javascript,因为有太多的垃圾邮件一直在显示。cookie notif、广告、订阅、权限请求,所以我更喜欢使用
load=“lazy”
您还可以查看响应图像的srcset“我想查看模糊图像,而不是微调器如何实现这一点”-方法是将当前作为背景图像应用于所有这些图像的微调器GIF替换为每个图像的特定模糊图像。当然,您必须首先从所有全尺寸图像中创建那些模糊的缩影版本……”“因为我不想替换manulay的所有图像”-然后您可能必须使用服务器端的脚本来完成。如果您直接将
发送到浏览器,它将在遇到元素时立即开始加载该图像。您是否希望使用渐进式Jpeg-s?“我想查看模糊图像,而不是微调器如何做到这一点”-通过将当前作为背景图像应用于所有这些图像的微调器GIF替换为每个图像的特定模糊图像。当然,您必须首先从所有全尺寸图像中创建那些模糊的缩影版本……”“因为我不想替换manulay的所有图像”-然后您可能必须使用服务器端的脚本来完成。如果您直接将
发送到浏览器,它将在遇到元素时立即开始加载该图像。您是否希望使用渐进式Jpeg-s?
<img src="image.jpg" loading="lazy" alt="..." />
<iframe src="video-player.html" loading="lazy"></iframe>