基于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 相关文章推荐
基于JQuery制作的产品广告效果
Dec 08 Javascript
eval的两组性能测试数据
Aug 17 Javascript
JS模拟实现Select效果代码
Sep 24 Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
vue双向绑定数据限制长度的方法
Nov 04 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python查看列的唯一值方法
2018/07/17 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python实现支付宝转账接口
2019/05/07 Python
python实现远程控制电脑
2019/05/23 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
设备动力科岗位职责范本
2014/02/23 职场文书
中国好声音广告词
2014/03/18 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
七年级作文之下雨天
2019/12/23 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
Python语言内置数据类型
2022/02/24 Python
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python