本片讲解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 style="margin: auto;width: 100%;height: 100%;" 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-style="x:0,y:0,size:12,textColor:0xffffff,bgAlpha:0.9"></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.responseTextif (!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的意义。。。。。

转载于:https://blog.51cto.com/aonaufly/1970528

Egret之JSZip高级应用:压缩JS相关推荐

  1. java 压缩js css,java YUI压缩JS跟CSS

    项目需要压缩JS和CSS,文件和文件夹太多,一一处理又比较麻烦,写个程序吧: import java.io.File; import java.io.FileInputStream; import j ...

  2. css compressor java_利用YUI Compressor压缩JS/CSS之终极秘籍

    JS/CSS的压缩已经不是什么新鲜话题了,自打YSlow推出后,这方面的优化话题是铺天盖地啊:不过当时作为后知后觉的我,甚至都没法完整地写出一份漂亮的JS/CSS的代码,何尝会去注意呢?! 时至今日, ...

  3. webpack(一)压缩js,加载css,压缩html,压缩图片

    1.webpack是前端资源构建工具(将一系列小工具用一个大工具处理),静态模块打包器(js资源,css资源,图片字体等资源).   首先告诉webpack一个入口文件,webpack就会以这个入口文 ...

  4. Visual Studio 编译任务压缩js和css文件

    如今网站都在说优化,压缩js和css文件就成了最基本的一种方法,js和css压缩有很多方法,很多网站也提供了这样的功能,也可以用YUI提供的包手动压缩,但是这都不效率啊,能不能在vs生成部署包的时候把 ...

  5. gulp压缩js转义es6的常见错误及解决方案

    gulp压缩js转义es6的常见错误及解决方案 参考文章: (1)gulp压缩js转义es6的常见错误及解决方案 (2)https://www.cnblogs.com/uimeigui/p/11797 ...

  6. uglifyjs压缩js文件

    UglifyJS 是一个服务端node.js的压缩程序,用来压缩js文件 (需要用到 node+npm node集成了npm) 下载安装uglify.js npm install uglify-js ...

  7. uglifyjs压缩JS

    首先,去http://nodejs.org 下载安装.我下的版本是0.8.14.安装很简单,下一步 需要先安装node,进入命令行,查看node,npm是否正确安装. 接下来安装UglifyJS,命令 ...

  8. 压缩js和css, IIS开启Etags, IIS开启Gzip

    我们在前端页面性能调优时,经常会压缩js和css,下面列出几个比较好用的在线工具. http://www.jb51.net/tools/jsmin/index.htm http://javascrip ...

  9. php 压缩js css文件,PHP实现动态压缩js与css文件的方法

    本文实例讲述了PHP实现动态压缩js与css文件的方法.分享给大家供大家参考,具体如下: 正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求.防止轻易查看源代码. 使用 只需要 ...

最新文章

  1. codevs 1373 射命丸文
  2. 黑客攻破网站涂鸦特效(强烈建议看看)
  3. [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)
  4. HDU 2859 Phalanx(二维DP)
  5. jQuery中的跨域问题
  6. 拍摄半身照,模特的手可以放哪儿?
  7. 【转】HTTP幂等性概念和应用
  8. 3767(按姓名排序)
  9. django使用mysql函数_请问django 可以操作mysql函数么?
  10. 怎么写c++ documentation_球鞋鞋标怎么看真假、有几种 耐克鞋标鉴定方法推荐
  11. 自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架案例数据加载
  12. oracle里面asm的作用,深入了解Oracle ASM(一):基础概念
  13. 人工智能资源下载2024G
  14. Labview心电信号处理
  15. 儿童故事小程序开发功能
  16. googleseo只做内容不做外链行不行?(e6zzseo)
  17. Latex输入大小写罗马数字
  18. @Deprecated
  19. 恒天餐饮管理系统服务器代码,恒天餐饮管理软件使用教程.doc
  20. h5课件制作_H5课件——H5页面在教学上的妙用

热门文章

  1. JavaScript的5种调用函数的方法
  2. 学术写作利器——LaTeX入门笔记整理(不定期更新,附加使用心得)
  3. 所有编程皆为Web编程
  4. 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)
  5. Machine Learning week 5 quiz: Neural Networks: Learning
  6. 计算机视觉与模式识别方面的代码code
  7. 【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介
  8. “新SaaS”引爆产业奇点《2017中国SaaS用户研究报告》
  9. 用prop还是attr
  10. C++编码中减少内存缺陷的方法和工具