再次更新預加載組件,更新點以下:php
添加ES6語法支持html
React-Preloadreact
資源預加載組件git
git clone https://github.com/jayZOU/preload.git npm install npm run es6
訪問http://localhost:8080/es6-demojsonp
<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]) }
隊列名稱不能重名,不然後面的隊列會覆蓋前面
ES6模式編寫,隊列之間同步加載,隊列內資源爲異步加載