去年公司在漳州的乙個專案中,現場工程人員反映地圖部分出圖有點緩慢,大約需要20多秒。和另外乙個同事一起花了一兩天進行了**優化、**壓縮、中介軟體優化以及服務部署優化後使地圖出圖縮短到了9秒上下。
這裡對上次的經驗做乙個總結,提供一種優化js檔案載入時間過長的思路。這裡的中介軟體使用的是tomcat6.0。
**重構,使**模組化。利用require.js,實現**按需載入。
去掉不必要的框架,或者將框架中涉及到的部分提取出來,去掉不用的部分。比如漳州專案中,用了公司的傳統框架yui,但是介面部分是用jquery編寫。yui框架僅僅利用了其事件機制。這裡我們將yui的事件機制進行提取,封裝成乙個單獨的類後,其餘部分全部捨去。
對**模組化後的乙個很大的好處就是方便**打包,避免出現公共變數名衝突等問題。這裡使用ant對js檔案進行壓縮合併打包。
壓縮時要注意各模組之間的依賴關係。將被依賴模組放在依賴模組的前面。
tomcat5.0以後的版本是支援對輸出內容進行壓縮的,使用的是gzip壓縮格式。
在server.xml檔案中增加配置方式如下:
當訪問後台請求增多時,js載入也會變慢,優化服務的部署能起到一定的作用。
在server.xml檔案中合理增加中介軟體執行緒池的數目:
在catalina.bat檔案中合理增加中介軟體的記憶體:
漳州專案中的gis服務和多個其他服務部署在同乙個中介軟體下。由於gis服務的訪問量遠大於其他專案服務。在訪問量驟公升時會對其他服務造成一定的卡頓。
解決方案是對gis專案在伺服器上單獨發布。
有博友給出乙個建議:把動態請求和靜態請求分離,單獨部署靜態檔案伺服器。此方法個人覺得很好。
設定多個服務節點,進行服務的負載均衡配置。
一種輕便且靈活的js模板的思路
在vue react angular等大前端框架異軍突起的今天,寫前端時已經很難用得上普通模板引擎了。因為這些框架都自帶dom渲染的功能,甚至由於虛擬dom技術的存在,使得dom渲染的效率比普通模板引擎更高。但是在某些場景,仍然有用模板引擎的需求,比如寫外掛程式之類的 我就是在寫外掛程式的時候想到這...
一種計算留存的思路
在一些統計系統中,為了觀察使用者的粘度,我們會計算一系列的叫做留存的指標 次日註冊留存 2日註冊留存.n日註冊留存,比如昨天註冊了1000名使用者中,在今天有300名使用者又登入了,那麼對應於昨天的註冊留存就是30 如果再去細究,還可以去計算活躍使用者的留存情況,比如昨天登入的1000名使用者中,在...
學習知識的一種思路
昨天看到王垠博士的思維導圖,裡面有個很重要的概念就是學習知識分類,然後不斷的細化下去。聽說寫作也是一樣,作家也是先寫好提綱,然後一點點填充內容。看到這個讓我想起了禪與電單車裡作者對科學,對文學的學習方法,其實就是分類,然後再對子節點進行分類。其實大多數人都是在做別人早都研究出來的東西,用生活大 裡的...