当前位置: 首页 > 知识库问答 >
问题:

如何在不滚动的情况下强制/触发Wordpress本机延迟加载图像的加载?

姚树
2023-03-14

我不喜欢延迟加载,因为在用户体验方面,它看起来非常难看。但是,我了解其好处(更快的页面加载、低带宽、高页面速度分数等)

我计划编写一个javascript代码,它将:

呆在底层

这样,我就不会丢失任何速度分数(因为它会像平常一样加载延迟加载的图像),但是,当一切都完成时,我也会加载完整的图像,所以用户不会注意到。(我们在加载实时聊天脚本时也做了同样的操作,效果非常好)

它可能看起来像这样:

<script>
window.onload = function() {
    setTimeout(functhtml" target="_blank">ion(){ 
        var ForceLoadImages = document.createElement('script');
        ForceLoadImages.type = 'text/javascript';
        ForceLoadImages.src = 'link-to-the-script-to-force-load-images.js';
        document.body.appendChild(chatScript);
    }, 3000);
};
</script>

我不是js专家。这只是一个给出想法的虚拟示例。我特别询问如何编写“链接到脚本以强制加载images.js”部分的内容。如果您有任何意见,我们将不胜感激。

这里有一个类似的问题,但需要Wordpress的回答。

共有2个答案

谈旺
2023-03-14

我只是想把这个解决方案作为一个答案(感谢凯泽),他们正在寻找这样的东西。这是非常干净,工作很好:

<script>
var loadimages = document.querySelectorAll('img');
window.onload = function() {
   setTimeout(function(){
      //Force Load images
      for (var i=0; i<loadimages.length; i++) {
         if(loadimages[i].getAttribute('loading')) {
            loadimages[i].removeAttribute('loading');
         }
      }
   }, 3000);
};
</script>
柳仲卿
2023-03-14

我猜想wp惰性负载使用data-src属性来保存图像,当在view port中时,它将图像添加到src属性中。

简化如下:

<img data-src="URL"/>

*如果不是这样,请在源代码中找到当图像不在视图中时图像所在的属性

您需要做的是选择所有图像,并将data-src更改为src,如下所示:

var images = document.querySelectorAll('img');

window.onload = function() {
setTimeout(function(){ 
for (var i=0; i<images.length; i++) {
    if(images[i].getAttribute('data-src')) {
       images[i].setAttribute('src',images[i].getAttribute('data-src'));
       images[i].removeAttribute('data-src'); // optional if you need to remove data-src attribute after setting src
    }
}
}, 3000);
};
<div class="container">
<img data-src='https://picsum.photos/id/237/200/300' />
<img data-src='https://picsum.photos/seed/picsum/200/300' />
<img data-src='https://picsum.photos/200/300' />
</div>
 类似资料:
  • 我似乎不能为我的生活得到任何图像懒惰加载插件在wordpress工作。我尝试了懒负载,wp懒负载和bj懒负载。网站上的图像似乎没有一个是“懒惰加载”的。我也使用审计工具(chrome审计)测试了这个。当我删除图像(每页大约有50张图像)时,我的审计绩效和其他分数为99。当我加载图像(使用wordpress循环),我的性能下降到64. 我尝试了每一个延迟加载插件,但它们似乎都不是延迟加载。我正在本地

  • 我想做一个reactjs页面懒惰加载图像。因此,我调用lazyLoadImages()内部的组件didMount()。我发现位于浏览器选项卡的浏览器加载指示器仍然一路旋转,直到加载所有图像。这让我认为我所做的并没有提供真正的懒惰加载图像体验。 有趣的是,如果我在setTimeout中用一个不太短的timeout参数包装lazyLoadImages(),例如100ms(不是0或甚至50ms),那么页

  • 我试图懒惰加载Wordpress中的图像页面-我尝试了插件,但它们似乎都不工作(我只想懒惰加载一些页面上的图像)。 所以我现在尝试用一个插件-http://www.appelsiini.net/projects/lazyload 此插件需要img标记中的图像宽度和高度。 我正在附加自定义字段的图像,比如 是否可以从get_post_meta获取图像的宽度和高度 我看过wp_get_attachme

  • 问题内容: 我正在开发一个eshop。在基于类别的产品页面上,我放置了一些基于javascript的过滤器。但是,如果类别具有很多产品,则会出现问题。该链接具有与我相似的功能… 这个页面多么缓慢,却超过2mb !!! 对我来说,每个产品都需要一半的K字节,但是图像是个问题。.因此,我正在寻找如何延迟加载图像的方法。由于与该网站不同,我的页面具有分页功能,因此我认为加载仅对页面可见的图像是一种解决方

  • 我想删除Wordpress中第一个图像上的延迟加载,用于每个帖子、页面和主页。 我不使用任何插件的懒惰加载图像,我需要一个默认的懒惰加载的解决方案通过wordpress添加。 我为functions.php找到了这个脚本,但它是为WP Rocket插件找到的,我没有这个插件。 因此,我对其进行了如下修改: 现在,我只需要删除类为“aligncenter size full remove lazy”

  • 问题内容: 我正在使用ListView来显示一些图像和与这些图像相关的标题。我正在从互联网上获取图像。有没有一种方法可以延迟加载图像,以便在显示文本时不阻止UI并在下载图像时显示它们? 图像总数不固定。 问题答案: 这是我创建的用于保存应用程序当前正在显示的图像的内容。请注意,此处使用的“ Log”对象是我在Android内部最终Log类周围的自定义包装。