基于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——表单应用范例
Feb 20 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
Mar 10 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
js实现星星海特效的示例
Sep 28 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
MySQL修改密码方法总结
2008/03/25 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
授权委托书协议书
2014/10/16 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
工作年限证明范本
2015/06/15 职场文书
葬礼主持词
2015/07/02 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
子女赡养老人协议书
2016/03/23 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang