Javascript工具 - 完成JavaScript压缩和模糊处理

  我们都知道,JavaScript是一种在客户浏览器中执行的解释型语言。换句话说,JavaScript会以明文下载到浏览器,再由浏览器根据需要执行这个JavaScript代码。

  用户只要使用浏览器的查看源代码功能就能读到JavaScript源代码,该功能会显示出页面的完整HTML标记,包括所有JavaScript块。即使JavaScript源代码放在一个外部文件中,并用script标记的src属性来引用,用户也可以下载并阅读它。由于查看页面的人都能得到JavaScript源代码,所以不要把专用或机密的逻辑算法放在JavaScript中。这种逻辑最好放在服务器上,在那儿会更安全一些。

 在基于Ajax的应用中,随着JavaScript的使用越来越多,JavaScript文件的大小可能会成为问题。由于JavaScript是一种解释型语言,因此不会编译为机器级的二进制码,而对于可执行代码来说,二进制码才是更高效的存储格式。如果JavaScript文件太多就会使应用的速度减慢,因为它需要先把源代码从服务器下载到浏览器,然后才能在浏览器上执行。另外,如果使用诸如JSDoc(如前所述)的工具为此要对代码加注释,本来就很大的JavaScript代码会变得更大。

  你可能看到了,JavaScript缺少二进制的可执行包,这会带来两个问题:安全性差,以及需要下载大量的源代码。有没有办法避开这些问题呢?

  JavaScript日益普及,因此也产生了许多工具,这些工具有助于解决这些问题。最简单的压缩工具会简单地去除JavaScript源代码中的所有注释和换行符,这样可以减小下载的源代码的大小。删除注释行和换行符能使JavaScript文件的大小缩小30%甚至更多,这要依具体情况而定。需要说明的是,JavaScript源代码中的所有语句必须正确地以分号结束,只有这样才能用这种工具对源代码进行压缩。如果没有做到这一点,你就会接收到错误或者未预料行为的消息。所以,在压缩JavaScript源代码之前,一定要使用JSLint确保所有语句都以分号结束!

  还有一些工具则更进一步,可以提供模糊服务。模糊(Obfuscation)是一种过程,指全面扫描源代码,将字段和函数原来的名字改成经编码的无意义的名字,以防止其他人了解源代码的含义和内部工作。对于能编译为机器级二进制指令的语言来说(如C++),一般不需要这种模糊处理。即使Java和C#这样能够编译为中间字节码而不是二进制指令的现代语言,也需要模糊工具来保证最大程度的安全。JavaScript作为一个完全解释型语言同样需要这样一种工具。

  有一个能同时提供压缩和模糊服务的免费工具,就是MemTronic的HTML/JavaScript Cruncher-Compressor(hometown.aol.de/_ht_a/memtronic/)。这个工具支持多个层次的JavaScript压缩。最低层次的压缩在这个工具中称为挤压(crunching),只是简单地删除所有注释和换行符。这个工具的相关文档称,这样可以节省20%~50%的带宽。使用“crunch”模式,可以看到JavaScript文件的大小缩小了30%。

  最高层次的压缩在这个工具中称为压缩(compressing),是用一种真正的压缩机制实际压缩JavaScript源代码,并向文件增加自动解压缩功能。这个工具的相关文档称,当使用这种模式时,带宽可以节省40%~90%,而且压缩后的输出已经在当前版本的IE、Netscape、Mozilla和Opera等浏览器上成功通过测试。使用同一个JavaScript文件,应用“compressing”模式和“crunch”模式进行测试,发现使用“compress”模式使得文件大小的缩小幅度超过了65%(见图5-13)。

  在写本书时,MemTronic工具的文档称,JavaScript的模糊工具还不算完备。不过,可以看看图5-13所示的输出窗口,这里显示了对JavaScript文件执行“压缩”操作的结果。这个输出中包含了许多奇怪的字符,难于阅读。尽管这可能不是真正意义上的模糊处理,但确实足以防止有不良企图的用户查看(甚至窃取)你的JavaScript源代码。

  图5-13 MemTronic的 HTML/JavaScript Cruncher-Compressor可以大大缩小JavaScript源代码的大小,并且难于读懂

时间: 2024-07-30 04:47:05

Javascript工具 - 完成JavaScript压缩和模糊处理的相关文章

Javascript工具 - 1st JavaScript Editor Po3.8编辑器下载(已解决智能提示失效问题)

      1st JavaScript Editor 是一款先进的JavaScript编辑器,无论对初学者还是专家用户都很适用,软件边侧有着丰富的编辑脚本选择,它提供了卓越的源代码格式样式以及格式美化调整,允许您定制和应用任何源代码格式排列风格,内置了JavaScript调试器,可以帮助您逐行的运行和调试代码,JavaScript编辑器可以用在编辑专业的JavaScript代码.制作动画以及其他特殊的网页效果等方面.      这个是我在网上好不容易找到的,的确解决了IntelliSense

Ajax基础教程(5)- 5.5 完成JavaScript压缩和模糊处理

我们都知道,JavaScript是一种在客户浏览器中执行的解释型语言.换句话说,JavaScript会以明文下载到浏览器,再由浏览器根据需要执行这个JavaScript代码. 用户只要使用浏览器的查看源代码功能就能读到JavaScript源代码,该功能会显示出页面的完整HTML标记,包括所有JavaScript块.即使JavaScript源代码放在一个外部文件中,并用script标记的src属性来引用,用户也可以下载并阅读它.由于查看页面的人都能得到JavaScript源代码,所以不要把专用或机

JavaScript 工具库:Cloudgamer JavaScript Library v0.1 发布

研究了一年多的js,也差不多写一个自己的js库了. 我写这个不算框架,只是一个小型的js工具库,所以我用的名字是Library. 主要集合了我写js时一些常用的方法,并参考了prototype.js,jquery,google,百度,有啊等框架. 这个工具库的主要特点是: [跨浏览器]能在以下浏览器使用:IE6,IE7,IE8,Firefox 3.5.3,Chrome 3.0,Safari 4.0.3,Opera 10.10 ie系列是必须的,其他能支持最新版本就够了. [使用命名空间] 当然不

web开发者不可错过的11个JavaScript工具

JavaScript即将接管Web世界,如雨后春笋版冒出的JavaScript工具更是让web开发者无所适从. 本文我们为大家推荐11款崭露头角但功能强大的JavaScript工具,是追逐web设计新潮流(界面简洁.面向移动.强调互动)中不可或缺的好帮手. 一.Meteor Meteor web应用开发框架定义的七大开发天条为现代软件开发打下良好基础,例如Meteor采用开源社区的方式培育插件资源,其他天条还包括:设计简单的API.仅通过网络传送数据.使用统一的开发语言等.Meteor还开发了一

《HTML5+CSS3网页设计入门必读》——2.9 闪亮的新工具:JavaScript API

2.9 闪亮的新工具:JavaScript API 如果想要获取关于CSS的文档,需要查阅CSS 规范.如果寻找的是有关标记的文档,需要查阅HTML规范.但是,哪里可以查阅JavaScript API的文档,例如document.write.innerHTML和window.hitory?JavaScript规范所涉及的全部是编程语言,因此无法获得任何与浏览器API有关的内容. 到现在为止,浏览器一直独立创建和执行JavaScript API并相互借鉴.HTML5对这些API的记录是一劳永逸的,

Javascript实现图片加载从模糊到清晰显示的方法_javascript技巧

1.背景介绍 在网络相册应用中用户查看照片是最朴素的需求,当网络比较慢的时候查看照片等待的时间是比较长的,用户体验会很差. 2.现状 现在加载照片的方法主要有一下两种: (1)最原始的方式在html页面直接用img标签加载显示照片.该方法在网络速度比较慢或者要显示的照片比较大的时候会页面出现空白的等待过程,并且不能开始给用户看到照片大概的情况,用户体验比较不好 (2)在html页面先用img标签加载显示照片的缩略图,同时用javascript隐藏的加载照片的原图,等照片大图加载完成后再将原图显示

JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解_javascript技巧

zip.js是什么 zip.js的github项目地址:http://gildas-lormeau.github.io/zip.js/ 通过zip.js封装一个能在网页端生成zip文件的插件, 直接在网页中创建包含文件夹和文件的压缩包,也可以自定义名字并下载: 如何使用: 1:引用zip.js 2:引用jQuery; 3:并引用封装的ZipArchive.js ,(因为zip.js的api使用起来比较繁琐,所以自己封装实现了这个插件) 4:引用mime-types.js; 查看DEMO, 使用方

Google 开源的JavaScript工具和库集锦

1.JavaScript代码风格 http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml 2.Closure Compiler(闭包编辑器) https://developers.google.com/closure Google此前曾开源了不少JavaScript工具,如Closure Compiler(用于生成紧凑且高性能代码的工具).Closure Templates(用于动态生成HTML).Closure

javascript arguments与javascript函数重载

1.所 有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数.他不是一个数组,如果用typeof arguments,返回的是'object'.虽然我们可以用调用数据的方法来调用arguments.比如length,还有index方法.但是数 组的push和pop对象是不适用的. 2.函数定义时的参数个数和函数调用时的参数个数没有任何关系. 在函数中可以用f.arguments[0]和f.arguments[1]得到调用时传入的第一和第二个参数,arguments不能够创建