完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
JSCompress是一款基于Yahoo.Yui.Compressor for .Net(CSS压缩)、Google Closure Compiler(JS压缩)的可视化的、自动化的、免费的脚本代码压缩、混淆加密、合并工具。JSCompress压缩工具不是插件,Ta不挑编辑器,支持所有编辑器,真正做到了即改即压缩;JSCompress基于Yahoo.Yui.Compressor for .Net(CSS压缩)、Google Closure Compiler(JS压缩),支持压缩、混淆加密、合并,代码有保障;JSCompress无弹窗广告、占用资源低、可以最小化在系统托盘,是你开发路上好帮手。
1.手动压缩界面
手动(批量)压缩、混淆加密脚本文件
2.自动压缩设置界面
设置监视目录/压缩等级/注释/Map等
3.添加(编辑)自动压缩目录界面
设置监视目录/压缩等级/注释/Map
JSCompress 4.1.6515.0
"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:9.25 MB
昨天分享了 http://jscompress.sinaapp.com/ 这个小工具后,发现大家还是很喜爱的。 因此今天我把它json化了.用json传输数据,也开放了api 本工具所有的功能实现都是由 http://jscompress.sinaapp.com/api 处理.(包括现在可以使用的这个在线压缩) 所有的数据交换均由 HTTP POST 输入处理后由 json 作为数据输出格式. API参数 : http://jscompress.sinaapp.com/api?get={type}&code=(code)&type={compress only}get={type},{type} 为可选的 compress (压缩) format (格式化) shuffle(混淆) code=(code),(code) 为必要的源代码. JavaScript的源代码 type={compress},{compress} 注意该参数只有压缩的时候生效,可选 1(默认压缩) 2(YUI压缩) 3(GC压缩) 例:使用 CURL... POST http://jscompress.sinaapp.com/api?get=compress&code=var a=1;var b=2;&type=2如果执行成功则返回结果: {"code":"var a=1,b=2;\n","original_size":"16 Byte","now_size":"13 Byte","status":"Closure Compiler \u538b\u7f29\u5b8c\u6210.","minify":"81.25%"} 然后我写了一个php文件,可以调用这个网站的api,把整个目录所有的js文件压缩或者混淆,格式化后保存到一个新目录。 这样就对那些懒上传文件的同学们基于方便了~~ 直接下载地址: jstools.rar高亮显示 复制代码 代码如下: <?php /* /## js 合并和压缩PHP脚本...可用于本地或者服务器. /## 本工具只能处理utf-8编码的 *.js 文件.否则会接收不到结果 @ 风吟 (fengyin.name) @ http://jscompress.sinaapp.com/ */ set_time_limit(0); function JsTools($options = array( 'basepath' =>'./', //需要处理的脚本路径... 'compiled' =>'./compiled/', //处理后新文件的路径... 'type' =>'compress', //可选 compress (压缩) format (格式化) shuffle (混淆) 'is_merger' =>true, // 是否需要把全部文件合并再进行处理 (压缩,格式化,混淆) 'engine' =>'1'//此项只对 type 为 compress 时有效,1(默认) 2 (yui) 3(Closure Compiler) /* yui 和 Google Closure Compiler 压缩是不可逆的,一般情况下使用默认即可 不推荐使用混淆. */ )){ if (is_dir($options['basepath'])) { if ($dh = opendir($options['basepath'])) { while (($file = readdir($dh)) !== false) { if (strpos($file, '.js') !== false && strpos($file, '.min.js') === false) { $js[] = $file; } } closedir($dh); } } if ($options['is_merger']) { foreach($js as $jsfile) { $jscode.= file_get_contents($jsfile).';'; } $jscode = json_decode(api($jscode, $options['type'], $options['engine']), true); file_put_contents($options['compiled'].'all.min.js', $jscode['code']); } else { foreach($js as $jsfile) { $jscode = json_decode(api(file_get_contents($jsfile), $options['type'], $options['engine']), true); file_put_contents($options['compiled'].str_replace('.js', '.min.js', $jsfile), $jscode['code']); } } } function api($code, $type, $engine) { $ch = curl_init('http://jscompress.sinaapp.com/api'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'get='.$type.'&code='.urlencode($code).'&type='.$engine); $output = curl_exec($ch); curl_close($ch); return $output; } JsTools(); ?>
针对jquery性能优化这个主题,想必大家都有所了解。下面是我搜集点一点资料关于jquery性能优化,大家可以参考参考。 一、选择器性能优化建议 1. 总是从#id选择器来继承:这是jQuery选择器的一条黄金法则。jQuery选择一个元素最快的方法就是用ID来选择了; 2. 在class前面使用tag:jQuery中第二快的选择器就是tag选择器(如$(‘head')),因为它和直接来自于原生的Javascript方法getElementByTagName()。所以最好总是用tag来修饰class(并且不要忘了就近的ID); 3. 使用子查询:将父对象缓存起来以备将来的使用; 4. 采用find(),而不使用上下文查找; 5. 利用强大的链式操作:采用jQuery的链式操作比缓存选择器更有效; 二、优化DOM操作建议 1.缓存jQuery对象: 将你经常用的元素缓存起来; 2. 当要进行DOM插入时,将所有元素封装成一个元素: 这里的基本思想是在内存中建立你确实想要的东西,然后更新DOM。这并不是一个jQuery最佳实践,但必须进行有效的JavaScript操作 。直接的DOM操作速度很慢 直接的DOM操作很慢。尽可能少的去更改HTML结构。 3.使用直接函数,而不要使用与与之等同的函数:为了获得更好的性能,你应该使用直接函数如$.ajax(),而不要使用$.get(),$.getJSON(),$.post(),因为后面的几个将会调用$.ajax()。 4. 缓存jQuery结果,以备后来使用: 你经常会获得一个javasript应用对象——你可以用App.来保存你经常选择的对象,以备将来使用; 三、关于优化事件性能的建议 1.推迟到$(window).load: 有时候采用$(window).load()比$(document).ready()更快,因为后者不等所有的DOM元素都下载完之前执行。你应该在使用它之前测试它。 2.使用Event Delegation: 当你在一个容器中有许多节点,你想对所有的节点都绑定一个事件,delegation很适合这样的应用场景。使用Delegation,我们仅需要在父级绑定事件,然后查看哪个子节点(目标节点)触发了事件。当你有一个很多数据的table的时候,你想对td节点设置事件,这就变得很方便。先获得 table,然后为所有的td节点设置delegation事件 四、其他常用jQuery性能优化建议 1. 使用最新版本的jQuery 最新的版本往往是最好的。更换了版本后,不要忘记测试你的代码。有时候也不是完全向后兼容的。 2. 使用HMTL5 新的HTML5标准带来的是更轻巧的DOM结构。更轻巧的结构意味着使用jQuery需要更少的遍历,以及更优良的载入性能。所以如果可能的话请使用HTML5。 3. 如果给15个以上的元素加样式时,直接给DOM元素添加style标签 要给少数的元素加样式,最好的方法就是使用jQuey的css()函数。然而更15个以上的较多的元素添加样式时,直接给DOM添加style 标签更有效些。这个方法可以避免在代码中使用硬编码(hard code)。 4. 避免载入多余的代码 将Javascript代码放在不同的文件中是个好的方法,仅在需要的时候载入它们。这样你不会载入不必要的代码和选择器。也便于管理代码。 5. 压缩成一个主JS文件,将下载次数保持到最少 当你已经确定了哪些文件是应该被载入的,那么将它们打包成一个文件。用一些开源的工具可以自动帮你完成,如使用Minify(和你的后端代码集成)或者使用JSCompressor,YUI Compressor 或 Dean Edwards JS packer等在线工具可以为你压缩文件。我最喜欢的是JSCompressor。 6. 需要的时候使用原生的Javasript 使用jQuery是个很棒的事情,但是不要忘了它也是Javascript的一个框架。所以你可以在jQuery代码有必要的时候也使用原生的Javascript函数,这样能获得更好的性能。 7. 从Google载入jQuery框架 当你的应用正式上线的时候,请从Google CDN载入jQuery,因为用户可以从最近的地方获取代码。这样你可以减少服务器请求,而用户如果浏览其他网站,而它也使用Google CDN的jQuery时,浏览器就会立即从缓存中调出jQuery代码。
官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some path aliases may not exist. Please define these: Yii::setAlias('@webroot', __DIR__ . '/web'); Yii::setAlias('@web', '/'); return [ // Adjust command/callback for JavaScript files compressing: // 'jsCompressor' => 'java -jar compiler.jar --js {from} --js_output_file {to}', 'jsCompressor' => 'java -jar yuicompressor.jar --type js {from} -o {to}', // Adjust command/callback for CSS files compressing: 'cssCompressor' => 'java -jar yuicompressor.jar --type css {from} -o {to}', // The list of asset bundles to compress: 'bundles' => [ 'app\assets\AppAsset', 'yii\web\YiiAsset', 'yii\web\JqueryAsset', ], // Asset bundle for compression output: 'targets' => [ 'all' => [ 'class' => 'yii\web\AssetBundle', 'basePath' => '@webroot/assets', 'baseUrl' => '@web/assets', 'js' => 'js/all-{hash}.js', 'css' => 'css/all-{hash}.css', ], ], // Asset manager configuration: 'assetManager' => [ 'basePath' => '@webroot/assets', 'baseUrl' => '@web/assets', ], ]; 这里css和js全部用yuicompressor了 然后在web/assets下创建js,css文件夹,并设置权限777 安装java命令行,ubuntu下 sudo apt-get install default-jre 下载yuicompressor.jar: https://github.com/yui/yuicompressor/releases 放到yii根目录下 运行 ./yii asset assets.php config/assets-dev.php 在config下会生成assets-dev.php文件 在config/web.php的component配置中添加 'assetManager' => [ 'bundles' => require(__DIR__ . '/assets-' . YII_ENV . '.php'), ], F5刷新页面就可以看到使用了压缩后的css和js了 如果要取消,注释掉web.php中对应代码即可 PS:yii2 控制器、方法命名规范和访问路由 如果模块名称或者控制器名称或者动作名称是用的骆驼格式的命名写法,那么路由里面的每个大写单词之间都要用“-”来连接。如 DateTimeController::actionFastForward 相应的路由为 date-time/fast-forward。 例如:http://dfms.com/backend/web/api-test/test-upload api-test是控制器名字 test-upload是方法名字 以上所述是小编给大家介绍的Yii2中使用asset压缩js,css文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
展开全部 1、Stunnix CXX-ObfusStunnix CXX-Obfus 是 C 和 C++ 源码的混淆器,可变成非常难于读懂、重用以及编辑的代码。提供多个选项用于控制代码混淆处理,完全支持所有的语法构造,支持 C 和 C++ 源码混合的项目。2、JsCompressorJsCompressor,主要用来压缩、混淆JS(Javascript)与CSS,基于YUI Compressor,目的是方便不熟悉Java或者不喜欢命令行方式进行压缩的Web开发者使用。