基于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
用Javascript评估用户输入密码的强度(Knockout版)
Nov 30 Javascript
通过jQuery源码学习javascript(一)
Dec 27 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
JS 使用for循环遍历子节点查找元素
Sep 06 Javascript
javascript解析json实例详解
Nov 05 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
原生js获取元素样式的简单方法
Aug 06 Javascript
原生js编写焦点图效果
Dec 08 Javascript
详解使用React进行组件库开发
Feb 06 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
Oct 26 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与C#分别格式化文件大小的代码
2011/05/14 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
python操作mysql数据库
2017/03/05 Python
python 生成器协程运算实例
2017/09/04 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
django缓存配置的几种方法详解
2018/07/16 Python
python实现各种插值法(数值分析)
2019/07/30 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
Python实现扫码工具的示例代码
2020/10/09 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
保安员岗位职责
2013/11/17 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
工作目标责任书
2014/07/23 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
MySQL Server 层四个日志
2022/03/31 MySQL