基于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 相关文章推荐
几个高效,简洁的字符处理函数
Apr 12 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
js获取iframe中的window对象的实现方法
May 20 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
原生JS实现图片翻书效果
Feb 16 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
JS块级作用域和私有变量实例分析
May 11 Javascript
Vue中props的详解
May 16 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
解决Layui中layer报错的问题
Sep 03 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 session 存储方式的详细介绍
2013/06/25 PHP
php中JSON的使用与转换
2015/01/14 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
JS location几个方法小姐
2008/07/09 Javascript
javascript定义函数的方法
2010/12/06 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
javascript与Python快速排序实例对比
2015/08/10 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
python实现进程间通信简单实例
2014/07/23 Python
python实现猜拳游戏
2020/03/04 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
数控技术应届生求职信
2013/11/13 职场文书
工作时间上网检讨书
2014/02/03 职场文书
小学生新年寄语
2014/04/03 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Python如何使用循环结构和分支结构
2022/04/13 Python