最近作了一個WEB現場。幸運的是,一開始。但後來愈來愈慢,特別是在調試模式,,這確定是咱們的代碼有問題。可是即便業務不是很是複雜的也很是慢,咱們就想固然的以爲咱們的代碼沒問題,可最後證實仍是咱們的代碼有問題。我也挺佩服我怎麼忍受的了的。這個也是咱們不能如期完畢的主要緣由。你們都因爲慢。很是減小咱們的積極性,每每寫幾句代碼調試要話好長時間,因此你們都願意幹點其它的。數據庫
先列幾點我知道的可以從哪方面入手優化的東西。瀏覽器
從前臺入手緩存
1.下降HTTP請求性能優化
可以下降JS和CSS文件的個數,把幾個合併在一塊兒。下降沒必要要的圖片存在,server傳過來HTML文檔後。瀏覽器在解析的時候。遇到img便籤。會發生HTTP請求去獲取圖片。性能
2.使用瀏覽器緩存學習
一個站點他的樣式差點兒是同樣的,因此內容是一樣的,如JS、CSS和圖片等,像這些東西就可以放緩存裏,下次讀緩存便可。優化
3.圖片或者flash資源預載入spa
有時一個頁面有很是多圖片和flash資源。假設都一塊兒載入的話,那速度很是慢,影響用戶使用心情,因此就可以預載入這些資源,提升用戶體驗度。設計
從代碼方面入手調試
1.少循環。儘可能杜絕嵌套循環
有的業務十分複雜,按常規思惟寫的話,會出現很是多循環,甚至嵌套好幾層循環。寫代碼時三層以上的絕對不要有,假設數據量不大的前提,兩層三層的可以少有。
2.杜絕全局變量、靜態變量,少用鎖
儘可能杜絕全局變量、靜態變量,所有人都操做一份數據,這就會有數據不統一的狀況。不要輕易對一個資源加鎖。假設對一個資源加鎖,下一我的得等上一我的使用完。假設是頻繁的訪問這個資源。則效率會大大減小。
3.下降數據庫連接
與數據庫打一次交到就打開一個鏈接,也不主動釋放。這是不可取的。
假設每次打開連接在關閉連接,這樣也是很差的。
可以使用已有的連接。沒有已有連接纔打開一個連接。
4.使用外部的JS和CSS
將內聯的JS和CSS寫成外部的JS和CSS,下降反覆下載內聯的JS和CSS。
數據庫的優化
數據庫優化也有多值得學習的地方,這裏沒有深刻的研究,就大概寫寫本身臨時知道的一些。設計數據庫的時候要遵循數據庫三範式,但不是要求嚴格遵循,若有時也會要寫必要的冗餘來達到效率的提升。
假設要寫SQL語句,要杜絕in。in就至關於代碼裏的循環,當數據愈來愈多時,那會很是影響效率的。假設用到了ORM相關的,天然中大部分實體都是相關聯的,但並不是有點關聯就要創建映射關係,那會十分影響效率,僅僅有關聯十分密切的才創建關聯關係,否則你查詢孫子,你就可能把它的父母、爺爺、祖父等都會查詢出來。因此也少用關聯映射來查詢內容。
最後,關於性能優化是一個很是大的方面,有這麼多的東西值咱們要學習。以上是感受只是一點點最近。歡迎有其餘相關的東西與我分享。
假設咱們想知道從什麼點優化項目,請關注個人下一篇博客