基于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 相关文章推荐
Prototype使用指南之enumerable.js
Jan 10 Javascript
用js实现计算代码行数的简单方法附代码
Aug 13 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
jquery+html5烂漫爱心表白动画代码分享
Aug 24 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
Dec 08 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
jQuery实现菜单栏导航效果
Aug 15 jQuery
vue中使用sessionStorage记住密码功能
Jul 24 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
基于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中list()函数用法实例简析
2016/01/08 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
关于JavaScript的一些看法
2009/05/27 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
用js实现放大镜效果
2020/10/28 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
Python pickle模块用法实例分析
2015/05/27 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
数字漫画:comiXology
2020/06/13 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
医院后勤自我鉴定
2013/10/13 职场文书
智能电子应届生求职信
2013/11/10 职场文书
高二政治教学反思
2014/02/01 职场文书
批评与自我批评总结
2014/10/17 职场文书
教师考核表个人总结
2015/02/12 职场文书
会计工作检讨书
2015/02/19 职场文书
信用卡工作证明范本
2015/06/19 职场文书