基于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 相关文章推荐
js同时按下两个方向键
Dec 01 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
Nov 25 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
js创建元素(节点)示例
Jan 02 Javascript
js读取json的两种常用方法示例介绍
Oct 19 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
Sep 09 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
bootstrap table.js动态填充单元格数据的多种方法
Jul 18 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
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php生成curl命令行的方法
2015/12/14 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python将视频转换为全字符视频
2019/04/26 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
优秀教师获奖感言
2014/01/31 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
产品开发计划书
2014/04/27 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python