基于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 学习笔记(十一)
Jan 19 Javascript
Jquery同辈元素选中/未选中效果的实例代码
Aug 01 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
Dec 28 Javascript
JS实现的简单折叠展开动画效果示例
Apr 28 Javascript
vue头部导航动态点击处理方法
Nov 02 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 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 get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
jquery操作select大全
2014/04/25 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
解决Python对齐文本字符串问题
2019/08/28 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
python字典key不能是可以是啥类型
2020/08/04 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
就业自荐信
2013/12/04 职场文书
高三历史教学反思
2014/01/09 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
员工离职感谢信
2015/01/22 职场文书
2015年保送生自荐信
2015/03/24 职场文书
高中生军训感言
2015/08/01 职场文书
golang json数组拼接的实例
2021/04/28 Golang
MySQL学习之基础操作总结
2022/03/19 MySQL
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python