基于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 相关文章推荐
IE6与IE7中,innerHTML获取param的区别
Mar 15 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 Javascript
vue中进行微博分享的实例讲解
Oct 14 Javascript
JS实现电脑虚拟键盘的操作
Jun 24 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中file_get_contents与curl性能比较分析
2014/11/08 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
Python六大开源框架对比
2015/10/19 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
知识竞赛活动方案
2014/02/18 职场文书
道路交通安全实施方案
2014/03/12 职场文书
学生个人自我鉴定
2014/03/26 职场文书
优秀员工推荐材料
2014/12/20 职场文书
教师岗位职责
2015/02/03 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
字节飞书面试promise.all实现示例
2022/06/16 Javascript