基于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中删除指定数组中指定的元素的代码
Feb 12 Javascript
jQuery打印图片pdf、txt示例代码
Jul 22 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
全面了解JavaScript的数据类型转换
Jul 01 Javascript
AngularJS基础 ng-if 指令用法
Aug 01 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
使用JavaScript根据图片获取条形码的方法
Jul 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 Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
PHP 实现重载
2021/03/09 PHP
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
python写的ARP攻击代码实例
2014/06/04 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python实现线程池代码分享
2015/06/21 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python 美化输出信息的实例
2018/10/15 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
Python脚本调试工具安装过程
2021/01/11 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
2014迎国庆演讲稿
2014/09/19 职场文书
仓管员岗位职责范本
2015/04/01 职场文书