中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Egret之JSZip高級應用:壓縮JS

發布時間:2020-10-02 10:45:15 來源:網絡 閱讀:1880 作者:Aonaufly 欄目:開發技術

本片講解Egret使用JSZip解析加壓的js代碼,然后將其還原成可執行的js代碼。

一 , 先將egret庫打包 :

①:在網站根目錄建一個egret文件夾,在其中放入類庫

Egret之JSZip高級應用:壓縮JS

②:將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>

網站結構:

Egret之JSZip高級應用:壓縮JS


使用瀏覽器查看加載結果:

Egret之JSZip高級應用:壓縮JS


如果不使用壓縮 , 則結果是:

Egret之JSZip高級應用:壓縮JS

可以看出加載的代價比不壓縮要高很多。尤其是當項目很大時。這就是壓縮js的意義。。。。。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡水市| 华宁县| 河南省| 丰台区| 宕昌县| 含山县| 云林县| 台江县| 崇阳县| 高青县| 汶川县| 朝阳区| 辰溪县| 辛集市| 清苑县| 定州市| 万荣县| 泰宁县| 满洲里市| 郎溪县| 嘉善县| 赣州市| 新建县| 奇台县| 平安县| 栖霞市| 宁波市| 华池县| 铁力市| 庄河市| 车致| 贡觉县| 连州市| 宾川县| 本溪市| 嘉荫县| 会泽县| 玉门市| 溧阳市| 梁河县| 犍为县|