js的壓縮及jquery壓縮探討(提高頁(yè)面加載性能/保護(hù)勞動(dòng)成果)
更新時(shí)間:2013年01月29日 09:36:59 作者:
搞定js的加密和壓縮,一方面可以提高頁(yè)面加載性能,另外一方面也希望辛苦研發(fā)出來(lái)的成果得到一定的保護(hù),感興趣的朋友可以了解下,或許對(duì)你有所幫助
問(wèn)題緣由:負(fù)責(zé)公司的開發(fā)平臺(tái)研發(fā)工作,考慮的知識(shí)產(chǎn)權(quán)的保護(hù)工作,必須要考慮java的加密技術(shù)和js腳本的加密技術(shù)。在目前java加密很容易破解的情況下,還是先搞定js的加密和壓縮,一方面可以提高頁(yè)面加載性能,另外一方面也希望辛苦研發(fā)出來(lái)的成果得到一定的保護(hù)。
研究過(guò)程:
1、先強(qiáng)烈鄙視一下哪些隨便轉(zhuǎn)載文章的家伙,給我制造了很大的麻煩!!網(wǎng)上很多帖子都不靠譜。。
2、首先想了解jquery使用什么壓縮的, 網(wǎng)上找了半天,說(shuō)法不一樣,后來(lái)還是在jquery官網(wǎng)的最頻繁問(wèn)題中找到了答案,但這已經(jīng)是繞了一大圈之后的事情了。
(a)根據(jù)我看到的一些信息,jquery壓縮最早是用 Dean Edwards' Packer 進(jìn)行壓縮的,大概是在jquery1.3版本吧(我在一本jquery的書上看到的。)。這個(gè)東西出來(lái)的比較早,作者好像也是頭 大牛,目前是3.0版本,好像是在線版本,我自己把代碼去他網(wǎng)站上壓縮,無(wú)法使用,會(huì)出錯(cuò)誤。
(b)后面jquery換成yuicompressor 進(jìn)行壓縮,具體哪個(gè)版本不太清楚,有篇文章的作者說(shuō):他去jquery的svn中找了一下,發(fā)現(xiàn)有yuicompressor 的文件,然后他特意用jQuery.js試了一下,處理過(guò)的文件和jQuery.min.js一模一樣。原帖地址。
(c) 偶滴神啊,最后我在jquery官網(wǎng)找到了這么一段話。How do I compress my code?
內(nèi)容如下:
Generally the best way to do it is to use the Google Closure Compiler (used by jQuery) or YUI compressor. jQuery provides a pre-minified version of jQuery for your convenience.
Packing JavaScript using Dean Edwards' Packer (specifically using the base64 encode) is not recommended, as the client-side decoding has significant overhead that outweighs the file-size benefits.
大致意思是說(shuō):jquery用的是google的開源js壓縮工具,Google Closure Compiler和YUI compressor 是目前最佳的js壓縮方式。 Dean Edwards‘ packer 是不推薦使用的!!
事后感想:
1.其實(shí)我很早就注意到Google Closure Compiler這個(gè)工具了,但是受一個(gè)網(wǎng)友的誤導(dǎo),沒(méi)有去試用。他提出2個(gè)理由,一是這東西開源沒(méi)多久,二是這個(gè)會(huì)改寫和優(yōu)化你的代碼結(jié)構(gòu)且目前有幾個(gè)嚴(yán)重的問(wèn)題;我當(dāng)時(shí)一直在找jquery是用什么壓縮工具。 TMD這種技術(shù)文章中國(guó)人寫的就是不可信,到處JB亂抄??!很多東西都要看官方網(wǎng)站的文檔。
2.Google是一個(gè)偉大的公司,它的技術(shù)走在非常前沿,YUI之前是雅虎研發(fā)的,這幾年雅虎業(yè)績(jī)不佳,我想Google吸收了當(dāng)前IT領(lǐng)域很多技術(shù)專家,我們應(yīng)該相信它出品的東西都是精品。
研究過(guò)程:
1、先強(qiáng)烈鄙視一下哪些隨便轉(zhuǎn)載文章的家伙,給我制造了很大的麻煩!!網(wǎng)上很多帖子都不靠譜。。
2、首先想了解jquery使用什么壓縮的, 網(wǎng)上找了半天,說(shuō)法不一樣,后來(lái)還是在jquery官網(wǎng)的最頻繁問(wèn)題中找到了答案,但這已經(jīng)是繞了一大圈之后的事情了。
(a)根據(jù)我看到的一些信息,jquery壓縮最早是用 Dean Edwards' Packer 進(jìn)行壓縮的,大概是在jquery1.3版本吧(我在一本jquery的書上看到的。)。這個(gè)東西出來(lái)的比較早,作者好像也是頭 大牛,目前是3.0版本,好像是在線版本,我自己把代碼去他網(wǎng)站上壓縮,無(wú)法使用,會(huì)出錯(cuò)誤。
(b)后面jquery換成yuicompressor 進(jìn)行壓縮,具體哪個(gè)版本不太清楚,有篇文章的作者說(shuō):他去jquery的svn中找了一下,發(fā)現(xiàn)有yuicompressor 的文件,然后他特意用jQuery.js試了一下,處理過(guò)的文件和jQuery.min.js一模一樣。原帖地址。
(c) 偶滴神啊,最后我在jquery官網(wǎng)找到了這么一段話。How do I compress my code?
內(nèi)容如下:
Generally the best way to do it is to use the Google Closure Compiler (used by jQuery) or YUI compressor. jQuery provides a pre-minified version of jQuery for your convenience.
Packing JavaScript using Dean Edwards' Packer (specifically using the base64 encode) is not recommended, as the client-side decoding has significant overhead that outweighs the file-size benefits.
大致意思是說(shuō):jquery用的是google的開源js壓縮工具,Google Closure Compiler和YUI compressor 是目前最佳的js壓縮方式。 Dean Edwards‘ packer 是不推薦使用的!!
事后感想:
1.其實(shí)我很早就注意到Google Closure Compiler這個(gè)工具了,但是受一個(gè)網(wǎng)友的誤導(dǎo),沒(méi)有去試用。他提出2個(gè)理由,一是這東西開源沒(méi)多久,二是這個(gè)會(huì)改寫和優(yōu)化你的代碼結(jié)構(gòu)且目前有幾個(gè)嚴(yán)重的問(wèn)題;我當(dāng)時(shí)一直在找jquery是用什么壓縮工具。 TMD這種技術(shù)文章中國(guó)人寫的就是不可信,到處JB亂抄??!很多東西都要看官方網(wǎng)站的文檔。
2.Google是一個(gè)偉大的公司,它的技術(shù)走在非常前沿,YUI之前是雅虎研發(fā)的,這幾年雅虎業(yè)績(jī)不佳,我想Google吸收了當(dāng)前IT領(lǐng)域很多技術(shù)專家,我們應(yīng)該相信它出品的東西都是精品。
相關(guān)文章
基于element-ui?動(dòng)態(tài)換膚的代碼詳解
這篇文章主要介紹了element-ui?動(dòng)態(tài)換膚,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
uniapp實(shí)現(xiàn)可滑動(dòng)選項(xiàng)卡
這篇文章主要為大家詳細(xì)介紹了uniapp實(shí)現(xiàn)可滑動(dòng)選項(xiàng)卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
js中實(shí)現(xiàn)多態(tài)采用和繼承類似的方法
首先定義一個(gè)抽象類,其中調(diào)用一些虛方法,虛方法在抽象類中沒(méi)用定義,而是通過(guò)其具體的實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)2014-08-08
靜態(tài)的動(dòng)態(tài)續(xù)篇之來(lái)點(diǎn)XML
靜態(tài)的動(dòng)態(tài)續(xù)篇之來(lái)點(diǎn)XML...2006-12-12
基于Cesium實(shí)現(xiàn)拖拽3D模型的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Cesium實(shí)現(xiàn)在地圖上添加一個(gè)3D模型,并且可以實(shí)現(xiàn)拖拽效果。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-06-06
在Webpack中用url-loader處理圖片和字體的問(wèn)題
這篇文章主要介紹了在Webpack中用url-loader處理圖片和字體的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

