js在线压缩
❶ 轻松压缩JS文件
在任意文件夹下按住shift按键的同时,点击鼠标右键
打开powershell命令窗口
执行命尺漏令: npm install uglify-js -g
首先,打开cmd
其次,查找要压缩的js文件,查找方法如下:
1、输入文件所在位置
例如,陵轮烂我需要压缩的文件在E盘中,就输入 e:
2、输入:cd + js文件所在位置
例如,我需要压缩的js文件在:E:\electron-vue\topology\static\new_node_moles\topology-vue
就执行:cd electron-vue\topology\static\new_node_moles\topology-vue
3、输入:uglifyjs + 要压缩的js文件名称 + -o + 压缩后js文件名称
例如,我要将topology-vue.umd.js文件压缩成topology-vue.umd.min.js
就执行:uglifyjs topology-vue.umd.js -o topology-vue.umd.min.js
你没看错!
就是这么简单!!
将JS文桐宏件进行压缩,让你的程序快马加鞭地跑起来吧!!!
ueditor 用啥工具不清楚,不过压缩js 文件有以下几种(我知道的)
在线压缩,可以访问某个网站,有提供的在线压缩js的功能,例如:chrunleexun.com
通过工具压缩,例如:uglify ,可以安装nodejs 后,安装uglify 模块,通过命令行对文件进行压缩。
❸ TS/JS 使用pako.js 压缩字符串和二进制
因为项目需要压缩字符串和二进制,找到了旦脊pako这个库:
https://github.com/nodeca/pako
https://gitee.com/renew_old_romance/pako/tree/master
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pako/index.d.ts
参考 Javascript 简单实现Gzip 压缩字符串 基于pako.js
因为字符串需要与后端通讯,所以使用了bota/atob进行base64编码。
关于字符串与二进制处理,可以参考 jsmpeg系列一 基础知识 字符处理 ArrayBuffer TypedArray ,其中提到了ArrayBuffer与字符串的互相转换。
ArrayBuffer转为字符串,或者字符串转为ArrayBuffer,有一个前提,即字符串的编码方法是确定的。假定字符串采用UTF-16编码(JavaScript的内部编码段弯方式),可以自己编写转换函数。
但是,ab2str这种写法,在实际使用中,如果buf过大,会有 Maximum call stack size exceeded 堆栈溢出。
可以参考 javascript - js数组转字符串 - 在字符串握迟闷和ArrayBuffers之间转换 ,改为for的写法:
❹ 网站空间流量超标怎么解决
浏览网页产生的流量是由网凳冲页html代码、flash、图片、css、js等文件体积组成,因此,控制空间网页流量就得从这几个部分出发,减少它们的体积容量。
1、优化html代码
优化html代码,基本做法是去掉很多不必要的字符,例如去掉注释部分、去掉空行等。
还有更重要的是html代码的书写问题。用最少的代码实现需求,是一个html程序员必须永远追求的境界。举个很简单的例子,假如你对网页表格宽度的定义,是在每个表格里都用“width="***px"”,那么你的写法虽然能实现要求,但是总体看来是比较低效的。你完全可以用css全局定义一下table{width:***px}。这样处理,你的代码就会减少很多,简洁很多,进一步说,你的网页体积就会减少,网页打开时间就会减少,网页流量就会减少。
优化html代码,当然少不了gzip压缩,通过gzip压缩,代码的传输量会减少60%以上!这是控制流量最值得推荐也是最应用广泛的方法。你的网站启用了gzip吗?立即在线检测gzip压缩看看。如何启用网站的gzip压缩功能?
所以,优化html代码,无论是对于网页流量的控制还是网页打开时间的控制,都是非常重要的。不过你如果用的是现成的程序模版,基本是不用怎么优化html了,开发者多在这方面下了很大功夫,做得已经很优型旅秀的了。
2、优化flash
flash体积一般比较大,这里谈的优化flash,并不是说如何去做体积更小的flash,而是站长对flash的取舍问题。一张网页,如果放太多的flash文件,网页体积就会变得非常之大,网页打开速度会变得比较慢,网页流量却会增加得很快。
所以,网页应尽量少用,最好不用flash文件。
3、优化图片
图片是网页的重要组成部分,一张网页如果没有图片就会变得太过沉静,很影响网页美观,也影响用户感受。但是一张网页如果图片数量过多或体积过大,就会严重影响下载速度和打开时间,再就是,它会让你的网页流量增长迅速,这对于受月流量限制的空间来说,简直就是个噩梦。
所以,网页除了使用很必要的图片外,其他不相干的图片应尽量不用。一部分人使用图床来控制空间流量,这样做是个办法,但不可否认会导致网页的打开时间增多和速度减慢的问题卜粗凳。
因此,我认为图片最好是在正式放到空间使用前,做个压缩优化。webkaka的图片在线压缩优化工具,给大家提供了一个便利,经测试,部分图片的无损压缩比达到90%以上!换句话来说,50k的图片经过无损压缩后,只有5k!
4、优化css
优化css,主要是从代码出发,删除多余的字符,从而达到压缩优化的目的。webkaka的css在线压缩优化工具,能使部分css代码压缩比达到30%以上。使用压缩优化过css文件,可以减少网页的总体积,从而减少浏览网页时产生的流量。这是控制网页流量的一个手段。
5、优化js
与优化css一样,主要是从代码出发,删除多余的字符,从而达到压缩优化的目的。webkaka的js在线压缩优化工具,能使js代码压缩比达到20%以上。
总结
网站空间月流量超标,是站长不愿看到的事,但是换另一个角度来看,网站流量超标,不就说明了网站流量提升了么?这应该事个值得庆贺的事!而对于本文提到的控制网页流量的方法,其实只能是治标不治本,最好的做法是用个没有月流量限制的空间,那样,你可以腾出更多的时间去做网站内容,而不用再去担心网站流量的问题。
❺ js压缩图片 到固定像素以内,500k为例
本文旨在探究js压缩图片的两种方式: 改变图片长宽 , 改变图片质量 ,和结合了以上两者的 最终方案 。
首先,阅读本文需要知道canvas的两个方法
这两个方法具体的说明可以在MDN上查看,关于图片压缩,也有很多现成的博客可以直接用。但是那些博客都有个问题,并没有关心之后图片的压缩质量。
我试着用一个现成的例子去跑了一下,一个1.7M的图片压缩到了23k,堪称像素级毁灭性破坏。
假如一张大图可能包含着很多文字等关键信息,必须上传之后使用方能清晰辨认。所以要压缩之后质量尽可能接近500k的。500k像素以内,就是若一张图宽度为1024,则高度不能超过500。因为图片有其他的信息,也是要占大小的。即不得大于 1024*500 。
所以,根据需求,上传图片不能超过500k的情况下尽可能保留图片的清晰度。当然如果可以的情况下用上面提到的 canvas.toDataURL 设置压缩程度为0.9,0.8试试看,图片质量可以接受,大小会有大幅度的缩小。
如果不压缩,靠调整图片长宽去控制上传大小呢?
原理很简单,就是靠不断地缩小限定的最大宽高,直到最终长宽的积小于规定的大小。
这种方法有可能最后得出的图片的大小会略大于规定大小,原因上文也提到过了,如果想使用这种方法,可自行再调整一下。
上面的方法有个问题,就是改变了图片的原始长宽。如果一个图的长宽足够大,压缩图片质量,糊一点但是内容看得清也是ok的嘛。所以,跟上面同理,我们可以不断调整图片的质量设定直到大小合适,那么,如何在图片上传之前知道图片的大小呢?
首先,需要知道的一点是,压缩之后拿到的base64字符串会转成blob对象,然后传给服务端。
可以查阅文档,blob对象有个属性是size
这个size就是上传之后实际的文件大小。
参照上面的思路,可以每次改变 canvas.toDataURL('image/' + fileType, level); level的值,去调整压缩图片质量,然后用blob对象的size去验证是否满足500k以内的需求。
关于 canvas.toDataURL 的level到底是怎么计算的,MDN文档里也没说,写了个循环一次减少0.1的level压缩了几个图片
用加减乘除算了一下,没找到规律,数学不好放弃了(这个东西好像也不是能观察出来的,看结果跟初始大小没啥关系)。
这里要注意的是,有可能遇到超大图片,0.1的level可能不足以压缩到500k,所以小于0.1的时候,改变level递减的差值继续压缩下去
在开始接收到图片的时候给一个loading增加用户的耐心好了,loading万岁~
其实单纯的压缩质量遇到稍大的图片,会导致页面高频计算,然后页面基本就用不了了- -。有尝试过用iphone的一个屏幕截图(10M左右),压的时候稍过一会,整个手机都在发烫,只能杀进程。
所以,若对长度没有特殊的限制,可以做一个缩放,去加快压缩的进度,提高能压缩的图片大小上限。
页面到了ios上还是不行- -,可以看到最后图片level为0.001,最长边为764。
问题还是循环次数还是过多,计算频率太高。从图中可看出,对于大图来说,初始设定的level和图片尺寸过于宽松,可以优化一下初始level和尺寸。
有的时候还会遇到一张图片无论如何也压不到500k,就是上一次和这次的压缩后大小没有变化,这种情况需要抛错,不让循环继续。
大图片的等待时间稍长,可以给用户先预览一个base64的图片增加等待耐心,方法名为 getImgBase64 ,这里都一并给出了
解决的隐患:上面这个方案会出现我需要一个500k的照片,压到了520k之后,再压了一次。有时候这最后的一次会特别夸张,直接将图片弄到了几十k。
参考了: https://github.com/WangYuLue/image-conversion
这个库里面有个方法 compressAccurately ,这个方法可以比较精准地压缩。偷偷翻了一下源码。
其实上一个方案的痛点就在于,如何在每一个压缩循环里处理尺寸和压缩比例。
总结
如有纰漏,欢迎指正
❻ uglify-js压缩js文件minifier压缩css文件
安装:cnpm install uglify-js –gcss
参数用法:
uglifyjs XX.js -o xx.min.js 压缩
uglifyjs XX.js -m -o xx.min.js 混淆性压缩态敬戚
uglifyjs xx.min.js –b –o xx.js 美化(反压缩) 文稿唤件
安装:
cnpm install minifier -g
用法:
minifier 是一个 nodejs 下的用于压缩 js 和 css 文件的插件。
minify index.js
则在当前文件夹下会生成一个index.min.js 的压缩的文件。css文件采用相同的命令进行压缩帆陵。
❼ 如何压缩网站里的css 和js文件 来减少空间的使用率,是网站打开速度加快,求给位高手帮忙!!!
CSS根本不需要压缩,本身也没有多大,JS你可以放在最后才调用,就可以加快一点速度。
❽ 怎么用JavaScript在线压缩图片
主要用了两个html5的 API,一个file,一个canvas,压缩主要使用cnavas做的,file是读取文件,之后把压缩好的照片放入内存,最后内存转入表单下img.src,随着表单提交。
照片是自己用单反拍的,5M多,压缩下面3张分别是600多kb,400多kb,300kb的最后那张失真度很大了,压缩效率蛮高的。
<!DOCTYPE html>
<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="js/JIC.js"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = document.getElementById(id); // console.log(filebtn); // var files = filebtn.target.files; // console.log(filebtn.target); // console.log(files); var files = evt.target.files; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { // Render thumbnail. // console.log(evt.target.files[0]); // console.log(e.target); console.log(e.target.result); var i = document.getElementById("test"); i.src = event.target.result; console.log($(i).width()); console.log($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); console.log($(i).width()); console.log($(i).height()); var quality = 50; i.src = jic.compress(i,quality).src; console.log(i.src); i.style.display = "block"; }; })(f); // Read in the image file as a data URL. reader.readAsDataURL(f); } } document.getElementById('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>
var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = document.createElement('canvas'); //naturalWidth真实图片的宽度 cvs.width = source_img_obj.naturalWidth; cvs.height = source_img_obj.naturalHeight; var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0); var newImageData = cvs.toDataURL(mime_type, quality/100); var result_image_obj = new Image(); result_image_obj.src = newImageData; return result_image_obj; }, function ****(***)
❾ js 压缩后的代码如何调试
最好的方法是使用穗皮腊在线工具HCJCompress,不仅压缩HTML、CSS、JS,具有还原功能。
1、进入HCJCompress。
2、根据文件数量,增删输入窗口的数量。
这种方法完美将代码还原到源代码中,根据握渣上下文和注释,调试工作,应该顺利一些吧。
❿ 压缩后的JS代码怎样解压缩
一般压缩都经过混淆,如果你看到变量名都是A,B,C,D之类的无规则的命名,那就是被混淆过的,一般来说也很难阅读,就算你 还原了格式。
如果是没有混淆的,你可以试试用js的格式化工具来重新格式化一下的,比如:
/* 美化:格式化代码,使之容易阅读 */
/* 净化:去掉代码中多余的注释、换行、空格等 */
/* 压缩:将代码压缩为更小体积,便于传输 */
/* 解压:将压缩后的代码转换为人可以阅读的格式 */
/* 混淆:将代码的中变量名简短化以减小体积,但可读性差,经混淆后的代码无法还原 */
/* 如果有用,请别忘了推荐给你的朋友: */
/* javascript在线美化、净化、压缩、解压:http://tool.lu/js */
/* 以下是演示代码 */
var Inote = {};
Inote.JSTool = function(options) {
this.options = options || {};
};
Inote.JSTool.prototype = {
_name: 'Javascript工具',
_history: {
'v1.0': ['2011-01-18', 'javascript工具上线'],
'v1.1': ['2012-03-23', '增加混淆功能'],
'v1.2': ['2012-07-21', '升级美化功能引擎'],
'v1.3': ['2014-03-01', '升级解密功能,支持eval,window.eval,window["eval"]等的解密'],
'v1.4': ['2014-08-05', '升级混淆功能引擎'],
'v1.5': ['2014-08-09', '升级js压缩引擎'],
'v1.6': ['2015-04-11', '升级js混淆引擎']
},
options: {},
getName: function() {return this._name;},
getHistory: function() {
return this._history;}
};
var jstool = new Inote.JSTool();