天天看點

微信小程式的圖檔預加載處理

一、正常的頁面處理的時候,我們可以使用多種方式處理圖檔預加載,但是這些方法在小程式中似乎就沒有

       那麼好用了,是以,我們可以使用圖檔的回調函數進行圖檔的預加載處理;

二、微信小程式的第一種情況是: 現在有A ,B 兩個頁面

       在B 頁面中有 10 張圖檔,需要提前預加載處理,

       那麼我們可以在A頁面加載完的時候提前加載B中的 10 張圖檔,

       或者在進入 B頁面中的時候,在 onload 函數中通過圖檔的回調函數監控圖檔加載的狀态,

       加載完之前顯示一個loading,加載完之後再顯示頁面;

三、上面的兩種情況是,一個頁面有loading等待處理,一個沒有loading等待處理,需要根據情況處理;

四、下面通過一張圖檔的預加載說明小程式中預加載的相關處理:

         情景描述:   先顯示一張loading頁面,在這段時間内加載圖檔,加載完成後顯示正常的頁面;

<view>      我是一個完整的頁面

        <view>   我是預加載圖檔顯示的loading部分,加載完成後就不顯示了

                <view>我是loading部分</view>   loading部分

                <view><image src="test.jpg" onload = "imgLoad"></image></view>    預加載的圖檔(需要隐藏)

        </view>

        <view>我是需要圖檔預加載之後再顯示的部分</view>   我是預加載之後顯示的頁面,上面的圖檔加載完成之後再顯示

</view>

上面的是基本的頁面結構處理;

那麼如何控制loading和圖檔預加載之後的頁面顯示呢?

給圖檔設定 onload 事件 ,我們定義的這個 imgLoad 函數在圖檔加載完成之後才會執行,

是以,我們在這個函數裡面進行處理即可;

首先顯示loading頁面,不顯示後面要顯示的頁面,

然後加載圖檔,在圖檔的onload 事件中增加處理,隐藏 loading ,顯示後面的頁面内容,

一旦這圖檔預加載完成,就會觸發這個函數的處理,達到我們需要的效果;

上面隻是單張圖檔的預加載處理,有的時候我們需要加載一個幀動畫,那圖檔太多了,

是以處理的原理都是這樣,處理的方式可能略有不同,後續補充。。。