怎麼讓圖片延遲載入?

PHP中文网
發布: 2017-06-22 10:51:31
原創
2563 人瀏覽過

大家還在為網頁載入速度而煩惱嗎?大家有發現網頁在某些瀏覽器很快,在某些瀏覽器很慢嗎?今天向大家介紹一下為何會出現這些情況,並跟大家分享一下具體的實現方法

1.先向大家講解一下為何需要圖片延遲加載

大家知道圖片的常見格式吧,圖片就是一個把一點一點像素組合在一起的一組像素,圖片它像素越多大小越大。一般的圖片都有幾kb,幾十kb,大的幾mb都有。這樣設想如果你的圖片是10kb,那麼延遲不延遲就無所謂了吧,但如果是幾十kb或幾百kb呢,讓使用者多等幾秒?總不能因為一張圖片,讓使用者等待幾十秒才能看的內容吧?

2.圖片延遲載入的實作

其實,圖片延遲載入這個功能已經不是很少見了,而且部分瀏覽器已經實現瀏覽器延遲載入圖片了,但是不支援的瀏覽器怎麼辦?

那麼我就自己想辦法,好!廢話就不多說了,先貼上程式碼:

//    window.imageList=[
//        { id:"图像1ID", url:"URL", onload=加载函数 },
 //        { id:"图像2ID", url:"URL", onload=加载函数 },
 //        { id:"图像3ID", url:"URL", onload=加载函数 },
 //        ....
 //    ];
 //在页面加载完成后调用 onLoadImage();
 function onLoadImage()
 {
     var i=0;
     if(window.imageList){
         //if(typeof window.imageList != "array")
         //    return;
         for(i=0;i<window.imageList.length;i++){
             var now=window.imageList[i];
             var id,url,onloadfn;
             if(now.id){
                 id=now.id;
             }
             if(now.url){
                 url=now.url;
             }
             if(now.onload){
                 onloadfn=now.onload;
             }
             if(id == null || url == null){
                 continue;
             }
             var nelement = document.getElementById(id);
             nelement.src = url;
             if(onloadfn)
                 (onloadfn)(nelement,url);
             id = url = onloadfn = null;
         }
     }
     console.log("All Image is loaded!Total "+i+" Image!");
     if(window.onImageAllLoad)
         (window.onImageAllLoad)();
 }
登入後複製

實例:

<!DOCTYPE html>
<html>
   <head>
    <meta charset="utf-8" />
    <title>这是一个测试</title>
    </head>
   <body>
       <img id="img1" alt="正在加载"></img>
       <img id="img2" alt="正在加载"></img>
        <img id="img3" alt="正在加载"></img>
   <script src="SuperImageLoader.js"></script>
   <script>
        window.imageList=[
         {
              id:"img1",
                url:"https://www.baidu.com/img/baidu_jgylogo3.gif",
                onload:function(){
                     alert(&#39;第一张图片已加载完成!&#39;);
                 }
            },
            { id:"img2", url:"https://www.baidu.com/img/baidu_jgylogo3.gif"},
            { id:"img3", url:"https://www.baidu.com/img/baidu_jgylogo3.gif"}
        ];
        window.onImageAllLoad=function(){
             alert(&#39;所有图片已加载!&#39;);
         }
        onLoadImage();
    </script>
</body>
</html>
登入後複製

下面是測試截圖:

# #

以上是怎麼讓圖片延遲載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板