Javascript 如何为您的网站加载模糊的惰性图像?

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

我有一个充满图片的网站,网站的性能很差

我想使加载的图像模糊,然后在滚动事件的图像将双加载

我正在使用PHP和Zend框架

我正在搜索一个java脚本库或php函数来帮助我生成一个延迟加载图像,但是我没有找到一个易于使用的,因为我不想替换所有的图像

我尝试了progressive-image.js,性能稍微提高了一点,我的主要目标是使请求数量最小化

有没有任何脚本可以和谷歌图片一样工作

我看过那个代码片段

 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>

还要看一下请求头,看看他们在请求什么

  • 浏览器正在发送带有一系列格式的
    accept type
    。WebP可能会比jpg更大程度地减小大小,并且在有损压缩时仍然看起来不错

  • 他们还可以发送
    保存数据
    请求头,以减少大小而不是速度,或者为他们提供一个更小的图像,然后进行放大

  • 有些甚至发送,比如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>

还要看一下请求头,看看他们在请求什么

  • 浏览器正在发送带有一系列格式的
    accept type
    。WebP可能会比jpg更大程度地减小大小,并且在有损压缩时仍然看起来不错

  • 他们还可以发送
    保存数据
    请求头,以减少大小而不是速度,或者为他们提供一个更小的图像,然后进行放大

  • 有些甚至发送,比如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>