基于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实现读取txt文档的脚本
Jul 20 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
理解javascript封装
Feb 23 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
jQuery ajax实现省市县三级联动
Mar 07 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
在Vue中创建可重用的 Transition的方法
Jun 02 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
一棵php的类树(支持无限分类)
2006/10/09 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
php HTML无刷新提交表单
2016/04/05 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
PHP重载基础知识回顾
2020/09/10 PHP
js图片实时加载提供网页打开速度
2014/09/11 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
Python利用IPython提高开发效率
2016/08/10 Python
python:socket传输大文件示例
2017/01/18 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
什么是python的自省
2020/06/21 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
servlet面试题
2012/08/20 面试题
2014年客房部工作总结
2014/11/22 职场文书