基于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 $(document).ready() 与window.onload的区别
Dec 28 Javascript
jQuery操作 input type=checkbox的实现代码
Jun 14 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
javascript实时显示北京时间的方法
Mar 12 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
Node.js静态文件服务器改进版
Jan 10 Javascript
js实现分割上传大文件
Mar 09 Javascript
详解vue.js之绑定class和style的示例代码
Aug 24 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
详解vue移动端项目代码拆分记录
Mar 15 Javascript
JS变量提升原理与用法实例浅析
May 22 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中的 == 运算符进行字符串比较
2006/11/26 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
浅谈python常用程序算法
2019/03/22 Python
python实现五子棋人机对战游戏
2020/03/25 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Django如何使用redis作为缓存
2020/05/21 Python
python自定义函数def的应用详解
2020/06/03 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
机电一体化职业规划书
2014/01/07 职场文书
养殖项目策划书范文
2014/01/13 职场文书
汽车广告策划方案
2014/05/31 职场文书
圣诞节开幕词
2015/01/29 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript