JavaScript代碼壓縮可實現3大功能:減小體積、優化邏輯、提升執行效率
專業的JavaScript代碼壓縮,絕不僅僅是去除回車使代碼擠到一行,而是用真正的技術減小代碼體積、提升代碼性能。
下面,以JShaman的JavaScript代碼壓縮功能為例,以說明JavaScript壓縮具體能對代碼進行哪些優化。
例:
壓縮前的代碼:
function fun_one(){ console.log(var_one); } function fun_two(){ console.log(var_one); } fun_one();
壓縮后:
function fun_one() { console.log(var_one); } fun_one();
壓縮前的代碼:
var var_one=1; var var_two=2; function fun_one(){ console.log(var_one); } fun_one();
壓縮后:
var var_one=1; function fun_one() { console.log(var_one); } fun_one();
如此便省去了無效代碼對空間的占用。
例,壓縮前的代碼:
var var_variable_one=1; var var_variable_two=2;
壓縮后:
var _0_=1; var _0_2=2;
例,壓縮前的代碼:
function fun_get_time(){} function fun_set_time(){}
壓縮后:
function _f1_(){} function _f2_(){}
長的函數名、變量名占用的空間多,變短自然省出了空間。
對功能邏輯進行判斷,去除某些由于邏輯無效而不會被執行的代碼。
例,壓縮前的代碼:
if(1==1){ console.log("1=1"); } else { console.log("1!=1"); }壓縮后:
console.log("1=1");
例,壓縮前的代碼:
2==2?console.log("2=2"):console.log("2!=2");
壓縮后:
console.log("2=2");
優化了邏輯、去除了無效代碼,代碼執行效率自然可得到提升。
例,壓縮前的代碼:
var four_one=4; var four_two; var four_three="this is four_three"; four_two=5; console.log(four_one,four_two,four_three,four_three);
壓縮后:
var four_two; var four_three="this is four_three"; four_two=5; console.log(4, four_two, four_three, four_three);
壓縮前,字符串或常量賦值給變量,后續代碼中使用變量進行各種邏輯處理。
壓縮后,直接取變量真正內容進行操作,省略了對變量的使用,節省了邏輯開銷。
在實際的編程中,平常不需要壓縮,優化壓縮可能并不利于工作,比如:
使用有意義的長變量名有助于理解代碼內容,方便維護,而不該使用無意義短變量名;
條理分明、但可能不必要的條件判斷語言,同樣便于代碼理解,而不該為了短小而省略判斷。
其它,回注釋、換行、縮進,都是日常編程的正常需要。
但在發行代碼時,需求可能與此相反,通常而言:
需要保密性的重要代碼,可進行混淆加密。
而某些代碼,可能需要考慮性能、大小,以方便高效執行、便于網絡傳輸可以進行代碼壓縮。
那么,你的JavaScript代碼,是需要混淆加密呢,還是需要壓縮呢?
Chrome作為目前市場份額最大的瀏覽器,也是我最鐘愛的瀏覽器,當然有其過人之處。作為一個開發人員,對于瀏覽器的控制使用肯定是必不可少的,今天我們一起來看看Chrome瀏覽器的開發者控制臺中幾個常用的小技巧吧。
Chrome瀏覽器
學習過前端的人肯定也都使用過jQuery,那么對于$運算符肯定不會陌生,這是jQuery提供的元素選擇器,用于快速定位頁面上的HTML元素。
$的使用并不是只能在JS文件中,在控制臺中同樣可以使用。我們打開Chrome的控制臺(按F12或者鼠標右鍵檢查),在控制臺中輸入$('div'),會發現有如下輸出結果。
$的使用
在控制臺下,$()與Javascript中的document.querySelector()返回的是相同的值。$$則表示的是Javascript中的document.querySelectorAll()。
關于console對象的使用技巧,我專門寫了一篇文章,大家可以看下《Javascript調試之console對象,它的一些小技巧你都知道嗎?》。
在控制臺下有個clear console的按鈕,點擊的時候會清空控制臺。
清空控制臺
同樣在控制臺中輸入clear(),實際是調用clear方法,也可以清空控制臺。
有的時候我們需要臨時改變頁面上的文字,圖案等信息,一種常見的方法是打開Elememts,然后在修改頁面的源碼,這種做法比較麻煩。如果需要修改多處,需要頻繁的修改源碼。
而通過Chrome的控制臺Console中,只需要下面一句簡單的代碼就可以使得整個頁面變得可編輯。
變成可編輯的代碼
實際的效果圖如下所示。
可編輯的效果
在Chrome控制臺的Source面板下,我們可以查看到頁面的源文件,包括js,css,img等。但是有些網站經常會將js或者css文件進行壓縮,對開發人員來說不友好,如果想要查看的話通過點擊一個按鈕,就可以輕松實現代碼格式化。
快捷格式化代碼
通過F12打開的命令行并不能包含全部的菜單,在Mac下通過快捷鍵Cmd + Shift + P,在Windows,Linux下通過Ctrl + Shift + P,可以打開所有的菜單選項,然后點擊選擇快速進入到對應的菜單中。
控制臺菜單快捷鍵
Chrome瀏覽器的控制臺功能還遠不止這些,還需要大家慢慢去發現,這里只是記錄了些簡單的功能,希望對大家有用。
avaScript 代碼壓縮是指去除源代碼里的所有不必要的字符,而不改變其功能的過程。這些不必要的字符通常包括空格字符,換行字符,注釋以及塊分隔符等用來增加可讀性的代碼,但并不需要它來執行。
在這篇文章中,我們選擇了15個最好用的 JavaScript 壓縮工具,有簡單的在線轉換器,GUI工具和命令行界面等。
1. JavaScript Minifier
它是一個很好的工具,帶有API來縮小js代碼。
2. JSMIni
如果您想快速輕松地縮小JavaScript或jQuery文件,請使用jsMini。只需復制和粘貼源代碼,選擇要基本壓縮還是完全壓縮,然后縮小代碼。
3. JSCompress
JSCompress.com是一個在線javascript壓縮器,允許您壓縮和縮小javascript文件。壓縮的javascript文件是生產環境的理想選擇,因為它們通常會將文件的大小減少30-90%。大多數文件大小的減少是通過刪除Web瀏覽器或訪問者不需要的注釋和額外的空白字符來實現的。
4. Minifier
一個簡化CSS/JS的簡單工具,沒有大的設置。它將CSS中的URL從原來的位置重新工作到輸出位置。它會自動解析CSS中的@import語句。
5. Gulp.js
js是流構建系統。它使用流和代碼對配置,使一個更簡單和更直觀的構建。通過更喜歡代碼而不是配置,GUMP使簡單的事情變得簡單,并使復雜的任務易于管理。通過利用節點流的強大功能,您可以獲得不將中間文件寫入磁盤的快速構建。GUP的嚴格插件指南確保插件保持簡單,并按您預期的方式工作。
6. Uglifyjs
這個包實現了一個通用的JavaScript解析器/壓縮器/美化工具包。它是在NodeJS上開發的,但是它應該在任何支持CommonJS模塊系統的JavaScript平臺上工作(如果您選擇的平臺不支持CommonJS,那么您可以很容易地實現它,或者放棄導出。
7. Grunt
grunt是一個用于JavaScript項目的基于任務的命令行構建工具。它有以下可以在項目中使用的預定義任務:連接文件、使用JSHint驗證文件、使用UGIFIFYJS執行minify文件、使用節點單元運行單元測試等等。
8. Koala
koala是一個GUI應用程序,用于Less、Sass、Compass和CoffeeScript編譯,以幫助Web開發人員更有效地使用它們。考拉可以在Windows、Linux和Mac上運行。
9. Prepros
PreProfessional是一個用于編譯更少的工具,Sass、Compass、Stylus、Jade以及更多的帶有自動CSS前綴的工具,它帶有內置的服務器,用于跨瀏覽器測試。它運行在Windows、Mac和Linux上。
10. Ajax Minifier
此工具是一個Windows應用程序,允許您在不使用命令行或VisualStudio的情況下運行MicrosoftAjaxMinifier。它縮小了文件夾和嵌套文件夾中的所有javascript文件,縮小了單個javascript文件,啟用/禁用了小型程序的超壓縮和分析選項等等。
11. Smaller
更小的是一個強大的HTML,CSS和JavaScript壓縮器在OSX上,它也有能力將多個文件組合成一個。壓縮您的文件,使您的網站加載更快。
12. Ultra Minifier
超迷你是最簡單的YUI壓縮機GUI,以縮小Javascript和CSS代碼,而不使用終端。
13. Require JS
RequireJS是一個JavaScript文件和模塊加載器。它是為瀏覽器內使用而優化的,但它可以用于其他JavaScript環境,如Rhino和Node。使用像RequireJS這樣的模塊化腳本加載程序將提高代碼的速度和質量。它包括一個優化工具,可以作為部署代碼的打包步驟的一部分運行。優化工具可以組合和縮小JavaScript文件,以實現更好的性能。
14. Online JavaScript/CSS Compressor
這是一個用于壓縮JavaScript或CSS的Web接口。該工具使用UgulifyJS 2、Clean-CSS和HTML縮略符.
15. Minify
minify是一個PHP 5應用程序,它可以幫助你遵循雅虎的一些高性能網站規則,它結合了多個css或Javascript文件,刪除了不必要的空白和注釋,并為它們提供gzip編碼和最佳客戶端緩存頭。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。