基于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侧边栏随窗口滚动实现方法
Mar 04 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
jQuery多个input求和的实现方法
Feb 12 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
May 31 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
微信js-sdk地理位置接口用法示例
Oct 12 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
JS实现图片手风琴效果
Apr 17 Javascript
VueJs使用Amaze ui调整列表和内容页面
Nov 30 Javascript
vue弹窗组件使用方法
Apr 28 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 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函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
农历与西历对照
2006/09/06 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
jQuery实现的form转json经典示例
2017/10/10 jQuery
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
python实现人工蜂群算法
2020/09/18 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
大学生思想汇报范文
2013/12/31 职场文书
全民健身日活动方案
2014/01/29 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android