資源預加載---preload

再次更新預加載組件,更新點以下:php

  1. 添加ES6語法支持html

  2. React-Preloadreact


preload

資源預加載組件git

  • 隊列,能夠支持隊列加載和回調,也能夠加載視頻或者音頻es6

  • 進度條,能夠動態獲取進度條信息github

  • 支持img標籤的預加載,添加pSrc屬性便可npm

  • 原生ES5json

  • demo異步

Install

git clone https://github.com/jayZOU/preload.git
npm install
 npm run es6

訪問http://localhost:8080/es6-demojsonp

Examples

<audio pSrc="../public/audio/a.mp3" preload="auto" controls></audio>
    <audio pSrc="../public/audio/b.mp3" preload="auto" controls></audio>

    <img pSrc="../public/image/b1.jpg" alt="">
    <img pSrc="../public/image/b2.jpg" alt="">
    <img pSrc="../public/image/b3.jpg" alt="">
    <img pSrc="../public/image/b4.jpg" alt="">
/**
    *    Preload 資源預加載組件
    *    @author jayzou
    *    @time 2016-1-12
    *    @version 1.0.6
    *    @class Preload
    *    @param {object}    sources                必填  加載隊列容器,支持隊列加載以及加載一個隊列後傳入回調
    *   @param {boolean} isDebug               選填      是否開啓debug選項,用於移動端調試,默認false
    *   @param {object} connector           選填      後臺數據接口,可選擇同步或異步
    *   @param int         loadingOverTime      選填      預加載超時時間,默認15, 單位:秒
    *   @param {object} loadingOverTimeCB   選填      預加載超時回調
    *    @param {object}    wrap                選填    進度條容器,返回記載進度信息
    *    @param {object}    completeLoad        選填    完成全部加載項執行回調,包括同、異步獲取數據
    **/

    var preload = new Preload({
        isDebug: true,
        sources: {
            imgs: {
                source: [
                    "../public/image/b2.jpg",
                    "../public/image/b1.jpg"
                ],
                callback: function() {
                    console.log("隊列1完成");
                }
            },
            audio: {
                source: [
                    "../public/audio/a.mp3",
                    "../public/audio/b.mp3"
                ]
            },
            imgs2: {
                source: [
                    "../public/image/b3.jpg",
                    "../public/image/b4.jpg",
                    "http://7xl041.com1.z0.glb.clouddn.com/OrthographicCamera.png",
                    "http://7xl041.com1.z0.glb.clouddn.com/audio.gif",
                ],
                callback: function() {
                    console.log("隊列3完成");
                }
            }
        },
        loadingOverTime: 3,
        loadingOverTimeCB: function(res) {
            console.log("資源加載超時:", res);
        },
        connector: {
            int1: {
                url: 'http://localhost/test/index.php?callback=read&city=上海市',
                jsonp: true
            },
            int2: {
                url: 'http://localhost/test/index.php?callback=read&city=深圳市',
                jsonp: false,
                callback: function(data) {
                    console.log("同步:", data);
                }
            }
        },
        progress: function(completedCount, total) {
            // console.log(total);
            console.log(Math.floor((completedCount / total) * 100));
        },
        completeLoad: function() {
            console.log("已完成全部加載項");
        }
    });

    function read() {
        console.log("異步:", arguments[0])
    }

Notes

  • 隊列名稱不能重名,不然後面的隊列會覆蓋前面

  • ES6模式編寫,隊列之間同步加載,隊列內資源爲異步加載

相關文章
相關標籤/搜索