網站優化總結

網站優化方案:css

從減小HTTP請求數量方面考慮:
java

       最基本,最重要的一條:能放入單個TCP/IP包中的字節數是1160。正則表達式

1、圖片文件優化方案:數組

  1. 對於大量公用的小圖片,採用合併方式(將小圖片合併成一個大圖片)。
  2. 利用CSS的background-position 屬性進行設置

    示例:<div style="width:16px;height:16px;background-image: url(../img/iknow/icons.gif);background-position:0 -32px;"></div>

    每一個小圖片的長寬分別是16px,因此顯示第一個圖片座標就是0 0,第二個圖片的座標是:0 -16px,第三個圖片的座標是0 -32px,以此類推……

2、js文件優化方案瀏覽器

  1. 首先將全部js文件進行壓縮優化。
  2. 查詢全部頁面引用的js文件信息。將其記錄到一個txt文件中。
  3. 將全部頁面上引用的js文件信息分類。
  4. 合併分類的js文件。
  5. 替換引用HTML文件中引用js地址信息。

3、css文件優化方案:緩存

  1. 首先將項目中的全部css進行壓縮優化。
  2. 查詢頁面中引用css文件信息。
  3. 將引用信息分類。
  4. 合併分類的css文件。
  5. 替換頁面中引用css的相應地址。

4、jsp頁面的優化 服務器

  1. 去除jsp頁面中無用的空行、tab符、空格符。

從程序執行上考慮:session

1、Html和Css執行效率:閉包

  1. 標記善始善終.
  2. 刪除無用的空格、tab、空行。
  3. 若是要處理絕對位置的元素,diaplay和visibility具備一樣的效果,使用visibility會更快。
  4. 把 CSS 放到代碼頁上端.和用戶訪問指望有關。CSS 放到最頂部,瀏覽器可以有針對性的對 HTML 頁面從頂到下進行解析和渲染。
  5. 避免 CSS 表達式.
  6. 從頁面中剝離 JavaScript 與 CSS;
  7. 避免使用Filter.
  8. 使用 <link> 而不是@importChoose <link> over @import 在 IE 中 @import 指令等同於把 link 標記寫在 HTML 的底部。

1、js執行效率:jsp


優化原則:

  1. 儘可能減小沒必要要的對象建立。
  2. 多字符串鏈接時用Array.join()替換 string += "XX"; ,提高速度,也即自定義一個StringBuilder()或者StringBuffer()方法,用法與java中的StringBuilder()方法相同。
  3. 變量名儘可能使用最短的字符表示,儘可能一次定義多個變量。
    如:function fun(username,userage){alert(username+userage);}
    應爲:function fun(a1,a2){alert(a+b);}
  4. 替換布爾值: 如:1替換ture,0替換false
  5. 縮短否認檢測: 如:if(name == null){} 替換爲:if(!name){}
  6. 使用數組和對象字面量:
    如:var test = new Array; 替換爲:var test = [];
    var test = new Object; 替換爲:var test = {};
  7. 注意變量的做用域範圍,局部變量的速度要比全局變量的訪問速度更快。
  8. 使用for(;;),while(),for(in)三種循環時應儘可能避免使用for(in)方法,
    若是是循環變量遞增或遞減,不要單獨對循環變量賦值,應該在它最後一次讀取的時候使用嵌套的++或--操做符。
    若是要與數組的長度做比較,應該事先把數組的length屬性放入一個局部變量中,減小查詢次數,儘可能避免with語句。
  9. 不使用Eval,使用eval至關於在運行時再次調用解釋引擎對內容進行運行,須要消耗大量時間。這時候使用JavaScript所支持的閉包能夠實現函數模版。
  10. 減小對象查找,由於JavaScript的解釋性,因此a.b.c.d.e,須要進行至少4次查詢操做,先檢查a再檢查a中的b,再檢查b中的c,如此往下。因此若是這樣的表達式重複出現,只要可能,應該儘可能少出現這樣的表達式,能夠利用局部變量,把它放入一個臨時的地方進行查詢。這一點能夠和循環結合起來,由於咱們經常要根據字符串、數組的長度進行循環,而一般這個長度是不變的,好比每次查詢a.length,就要額外進行一個操做,而預先把var len=a.length,則就少了一次查詢。
  11. 類型轉換
    把數字轉換成字符串,應用 "" + 1,雖然看起來比較醜一點,但事實上這個效率是最高的,性能上來講:("" + ) > String() > .toString() > new String();
    浮點數轉換成整型,這個更容易出錯,不少人喜歡使用parseInt(),其實parseInt()是用於將字符串轉換成數字,而不是浮點數和整型之間的轉換,咱們應該使用Math.floor()或者Math.round()。Math是內部對象,因此Math.floor()其實並無多少查詢方法和調用的時間,速度是最快的。
    對於自定義的對象,若是定義了toString()方法來進行類型轉換的話,推薦顯式調用toString(),由於內部的操做在嘗試全部可能性以後,會嘗試對象的toString()方法嘗試可否轉化爲String,因此直接調用這個方法效率會更高。
  12. 使用直接量,JavaScript支持使用[param,param,param,...]來直接表達一個數組,以往咱們都使用new Array(param,param,...),使用前者是引擎直接解釋的,後者要調用一個Array內部構造器,因此要略微快一點點。一樣,var foo = {}的方式也比var foo = new Object();快,var reg = /../;要比var reg=new RegExp()快。
  13. 字符串遍歷操做,對字符串進行循環操做,譬如替換、查找,應使用正則表達式,由於自己JavaScript的循環速度就比較慢,而正則表達式的操做是用C寫成的語言的API,性能很好。
  14. 高級對象,自定義高級對象和Date、RegExp對象在構造時都會消耗大量時間。若是能夠複用,應採用緩存的方式。
  15. 定時器,若是針對的是不斷運行的代碼,不該該使用setTimeout,而應該是用setInterval。
  16. 插入HTML內容時候儘可能找容器進行innerHTML操做,而儘可能避免使用document.write();
  17. 對象查詢,使用[""]查詢要比.items()更快,這和前面的減小對象查找的思路是同樣的,調用.items()增長了一次查詢和函數的調用。
  18. 建立DOM節點,建立頁面元素時應該是用document.createElement()方法,而若是文檔中存在現成的樣板節點,應該是用cloneNode()方法,由於使用createElement()方法以後,你須要設置屢次元素的屬性,使用cloneNode()則能夠減小屬性的設置次數——一樣若是須要建立不少元素,應該先準備一個樣板節點。
  19. 儘可能用switch代替2個以上條件的if。
  20. 儘可能減小else if語句數量,將條件按二叉樹方式排列。用if語句和多個else語句時,可能性越大的狀況越往前放。
  21. 優先使用內置方法.
  22. 節約使用DOM操做,如:若要在DOM樹中添加A節點,A中又包含其餘子節點,儘可能先把全部子節點添加到A中後,再把A添加到DOM樹中。
  23. 操做css樣式時注意如下問題:
    diaplay和visibility具備一樣的效果,使用visibility會更快。

 

2、jsp執行效率:


優化原則:

  1. 選擇正確的頁面包含機制:在JSP中有兩種方法能夠用來包含另外一個頁面:一、使用include指示符(<%@ includee file=」test.jsp」 %>)。二、使用jsp指示符(<jsp:includee page=」test.jsp」 flush=」true」/>)。在實際中我發現,若是使用第一種方法的話,可使得系統性能更高。
  2. 關閉服務器Servlet/JSP自動重載技術功能。
  3. 正確地肯定javabean的生命週期:
  4. 在servlet的init()方法中緩存數據
  5. 不要濫用HttpSession,若是沒有必要,就應該關閉JSP頁面中對HttpSession的缺省設置執行代碼:<%@ page session="false"%>,當你不須要HttpSession時,儘快地釋放它:當你再也不須要session時,你能夠經過調用HttpSession.invalidate()方法來釋放它。儘可能將session的超時時間設得短一點。
  6. 將頁面輸出進行壓縮:有的瀏覽器支持gzip(GNU zip)進行來對HTML文件進行壓縮,這種方法能夠戲劇性地減小HTML文件的下載時間。所以,若是你將servlet或JSP頁面生成的HTML頁面進行壓縮的話,那用戶就會以爲頁面瀏覽速度會很是快。但不幸的是,不是全部的瀏覽器都支持gzip壓縮,但你能夠經過在你的程序中檢查客戶的瀏覽器是否支持它。
  7. 正確地肯定javabean的生命週期,缺省的生命週期爲page。若是沒有正確地選擇bean的生命週期的話,它將影響系統的性能。若是你只想在一次請求中使用某個bean,但你卻將這個bean的生命週期設置成了session,那當此次請求結束後,這個bean將仍然保留在內存中,除非session超時或用戶關閉瀏覽器。這樣會耗費必定的內存,並沒有謂的增長了JVM垃圾收集器的工做量。所以爲bean設置正確的生命週期,並在bean的使命結束後儘快地清理它們,會使用系統性能有一個提升。


3、圖片優化效率:

  1. 從新檢查圖片的大小,若是圖片切割的不合理,從新進行切片。
相關文章
相關標籤/搜索