您好,登錄后才能下訂單哦!
本片講解Egret使用JSZip解析加壓的js代碼,然后將其還原成可執行的js代碼。
一 , 先將egret庫打包 :
①:在網站根目錄建一個egret文件夾,在其中放入類庫
②:將egret文件夾打包成egret.zip
二 , 將main.min.js打包成main.min.js.zip
三 , index.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Egret</title> <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="full-screen" content="true" /> <meta name="screen-orientation" content="portrait" /> <meta name="x5-fullscreen" content="true" /> <meta name="360-fullscreen" content="true" /> <style> html, body { -ms-touch-action: none; background: #888888; padding: 0; border: 0; margin: 0; height: 100%; } </style> <script egret="libs" src="libs/modules/jszip/jszip.min.js"></script> </head> <body> <div class="egret-player" data-entry-class="Main" data-orientation="auto" data-scale-mode="showAll" data-frame-rate="30" data-content-width="640" data-content-height="1136" data-show-paint-rect="false" data-multi-fingered="2" data-show-fps="false" data-show-log="false" data-show-fps-> </div> <script> //加載egret的引擎庫 try { loadZip("egret.zip",function(zip) { //壓縮進的egret引擎的各個代碼文件 var files = ["egret.min.js", "egret.web.min.js", "res.min.js", "tween.min.js", "dragonBones.min.js","eui.min.js","game.min.js","jszip.min.js","particle.min.js"]; for (var i = 0; i < files.length; i++) { createScript(zip,"egret/"+files[i]); } //加載游戲代碼 loadZip("main.min.js.zip" + "?v=" + Math.random(),function(zip) { createScript(zip,"main.min.js"); //全部加載完成,啟動egret游戲 egret.runEgret({ renderMode: "webgl", audioType: 0,retina:true}); }); }); } catch (e) { //壓縮失敗,實際項目這里需要改為加載沒壓縮的js文件。 console.error("jszip解壓文件報錯,進行普通文件加載"); } //加載單個zip文件,成功后進行回調 function loadZip(url,callBack) { var xhrZip = new XMLHttpRequest(); xhrZip.open("GET", url, true); xhrZip.responseType = "arraybuffer"; xhrZip.addEventListener("load", function (oEvent) { var arrayBuffer = xhrZip.response; // 注意:不是oReq.responseText if (!arrayBuffer) { console.log(url + "解析異常:" + xhrZip); throw new Error("zip異常"); } callBack(new JSZip(arrayBuffer)); }); xhrZip.send(null); } function createScript(zip,file) { //解壓出來變成script腳本 var text = zip.file(file).asText(); var script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.text = text; document.body.appendChild(script); document.body.removeChild(script); } </script> </body> </html>
網站結構:
使用瀏覽器查看加載結果:
如果不使用壓縮 , 則結果是:
可以看出加載的代價比不壓縮要高很多。尤其是當項目很大時。這就是壓縮js的意義。。。。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。