Openlayers項目開發(fā)完成后,需要將系統(tǒng)從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境。
開發(fā)環(huán)境下,Openlayers框架由上百個獨立的javascript程序文件組成,通過lib目錄中的Openlayers.js
動態(tài)加載,便于各個功能模塊的開發(fā)調(diào)試。
Openlayers是一個非常龐大的Web地圖客戶端應(yīng)用框架,提供了很多功能模塊,通常在開發(fā)過程中不會用到全部模塊。
將系統(tǒng)中用到的獨立javascript程序庫組織成一個Openlayers.js文件,可以減少代碼冗余,加快加載速度,
同時也便于對代碼進(jìn)行壓縮和重編碼,在一定程度上保護(hù)軟件產(chǎn)品。
Openlayers提供了代碼組合和壓縮工具,在build目錄下,使用Python腳本實現(xiàn)。運行該工具,需要安裝Python解釋器。
build文件夾中提供了三種預(yù)設(shè)的配置文件,它們是:
full.cfg 組合全部代碼
library.cfg 組合主要代碼
lite.cfg 組合最小代碼
項目配置文件建議使用library.cfg或lite.cfg為模板編寫。
配置文件中定義了四種作用不同的標(biāo)簽:
[first] 最前執(zhí)行的代碼文件
[last] 最后執(zhí)行的代碼文件
[include] 在預(yù)設(shè)配置中加入的代碼文件列表
[exclude] 從預(yù)設(shè)配置中去除的代碼文件列表
修改[include]和[exclude]項,生成項目配置文件。
在命令提示符下,輸入python build.py mycfg my.js(如果是windows系統(tǒng),請將python.exe加入系統(tǒng)Path路徑)
生成的my.js就是生產(chǎn)版本的Openlayers庫文件,將my.js部署到生產(chǎn)環(huán)境,測試各項功能是否運行正常。
build過程對代碼文件做了壓縮處理,壓縮率在40%左右,程序結(jié)構(gòu)沒有做任何改動。
如果你想保護(hù)自己的代碼,建議使用其他工具進(jìn)行二次處理,這里推薦Google的Jscompiler,Google的很多項目都使用該工具進(jìn)行代碼壓縮和優(yōu)化。
Google Jscompiler的使用方法:
從http://code.google.com/intl/zh-CN/closure/compiler/下載最新版本。
Google Jscompiler采用Java編寫,需要安裝Java 6.0運行時或開發(fā)包,如果沒有安裝請到Oracle網(wǎng)站下載。
解壓下載的zip包,生成compiler-latest目錄,其中compiler.jar是主程序,幫助包含在README中。
執(zhí)行Google Jscompiler請新打開一個命令提示符窗口,輸入:
java -jar compiler.jar --help 顯示所有可選參數(shù)說明。
壓縮編碼單個javascript程序文件,請使用下面的命令:
java -jar compiler.jar --js=in.js --js_output_file=out.js
壓縮合并多個javascript程序文件,請使用下面的命令:
java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
經(jīng)過Google Jscompiler處理后的Openlayers庫文件可以再減少20-30%的大小,生成的文件經(jīng)過測試沒有任何問題。
Google Jscompiler會自動對代碼進(jìn)行分析,自動篩選出邏輯上不可能到達(dá)的代碼,給出提示。
Google Jscompiler會對代碼邏輯流程重新組合和優(yōu)化,提高瀏覽器上的執(zhí)行效率。
經(jīng)過Google Jscompiler重新編碼后,Web客戶端的運行速度有明顯提升。