首页 > php图片延迟加载、懒加载的方法?

php图片延迟加载、懒加载的方法?

我现在的做法是,将图片的src用占位符图片代替,并使用data-src属性保存真实的图片地址,然后监控window的scroll事件,当图片出现在屏幕中时,就将data-src的值赋值给src。

但是这种做法不太方便,比如我现在不想延迟加载了,那么对于那些已经延迟加载的文章改起来就非常麻烦,比如我想在搜索引擎访问的时候不用延迟加载,用户访问的时候用延迟加载,不知道怎样做可以方便的进行切换呢?


img = new Image(); img.src = 'http://www.helloworld.com/test.jpg'; img.onload = function() { var imageContainer = document.getElementById('imgContainer'); imageContainer.appendChild(img); }


你可以在数据库里存储原样的也就是src的内容,在输出之前统一加上过滤器,自动替换为data-src的形式。这样当你想恢复原样的时候,只需要把过滤器调用删掉就行了。

function add_lazy_load_filter($html) {
    return preg_replace("/<img\s+src=\"([^\"]+)\"\s*\/?>/is", "<img data-src=\"\\1\">", $html);
}
【热门文章】
【热门文章】