基于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实现的表格分页实现代码
Jun 21 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
avalonjs实现仿微博的图片拖动特效
May 06 Javascript
原生JS实现拖拽图片效果
Aug 27 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
Vue中常用rules校验规则(实例代码)
Nov 14 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
Aug 04 Javascript
vue前端工程的搭建
Mar 31 Vue.js
基于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
PHP大转盘中奖概率算法实例
2014/10/21 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
python实现从字典中删除元素的方法
2015/05/04 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
2019/12/17 HTML / CSS
WiFi云数码相框:Nixplay
2018/07/05 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
制冷与电控专业应届生求职信
2013/11/11 职场文书
高中生职业规划范文
2014/03/09 职场文书
学生请假条格式
2014/04/11 职场文书
保护母亲河倡议书
2014/04/14 职场文书
党员组织生活会发言材料
2014/10/17 职场文书