基于pako.js实现gzip的压缩和解压功能示例


Posted in Javascript onJune 13, 2017

本文实例讲述了基于pako.js实现gzip的压缩和解压功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>pako.js实现gzip的压缩和解压</title>
</head>
<body>
<script type="text/javascript" src="pako.js"></script>
<script >
var b64Data   = 'H4sIAAAAAAAAAJ3UMQ7CMAwF0KugP2ewEzdpcxXUAbWAOiHUMqCqdyeVQAobfGXIYL8hP5ZXnEdkeNEk6vUgXTbLonC4zMjHFY/5Wm511ekdTsOCLKVp2rlIKOA2jTuBot/cr7BhobEwsbAloY8kDGyqoQ5H/oHsdwQ21cCmaspCz0L2jcYOgLHhNGw4TT1yVmBpuS9PZHWY35siqnxvimEvpE9FY4peQhfbhO0FDnuFqWAEAAA=';
var ticketData = '{"ed":"20170121 09:44:01","fs":[{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"003","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"005","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"004","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"007","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"008","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"026","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"033","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"034","oids":["0"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"035","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"037","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"038","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"041","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"042","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"047","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"046","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"048","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"051","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"053","oids":["4"]}],"qty":1,"sd":"20161021 09:44:01","cd":"72016102116762039687"}';
// Output to console
var s = unzip(b64Data);
console.log("unzipped:");
console.log(s);
var data = zip(ticketData);
console.log("zipped:");
console.log(data);
function unzip(b64Data){
  var strData   = atob(b64Data);
  // Convert binary string to character-number array
  var charData  = strData.split('').map(function(x){return x.charCodeAt(0);});
  // Turn number array into byte-array
  var binData   = new Uint8Array(charData);
  // // unzip
  var data    = pako.inflate(binData);
  // Convert gunzipped byteArray back to ascii string:
  strData   = String.fromCharCode.apply(null, new Uint16Array(data));
  return strData;
}
function zip(str){
  var binaryString = pako.gzip(str, { to: 'string' });
  return btoa(binaryString);
}
</script>
</body>
</html>

运行效果图如下:

基于pako.js实现gzip的压缩和解压功能示例

poko.js可至Github下载:https://github.com/nodeca/pako

或者点击此处本站下载

更多关于JavaScript相关内容可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
May 27 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
很实用的js选项卡切换效果
Aug 12 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
Dec 08 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
Dec 25 Javascript
详解Vue中使用Axios拦截器
Apr 22 Javascript
js实现多个标题吸顶效果
Jan 08 Javascript
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 #Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 #Javascript
深究AngularJS中$sce的使用
Jun 12 #Javascript
JS身份证信息验证正则表达式
Jun 12 #Javascript
用原生JS实现简单的多选框功能
Jun 12 #Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 #Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 #Javascript
You might like
基于PHP对XML的操作详解
2013/06/07 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
关于python2 csv写入空白行的问题
2018/06/22 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
python各种excel写入方式的速度对比
2020/11/10 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
赞美老师的演讲稿
2014/05/22 职场文书
车辆工程专业求职信
2014/06/14 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
工作试用期自我评价
2015/03/10 职场文书
节约用电倡议书
2015/04/28 职场文书
2015最新民情日记范文
2015/06/26 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis