爲什須要優化網站javascript
大型網站的特色css
1高訪問量html
2同時在想人數多java
3數據訪問量龐大數據庫
4數據操做頻繁瀏覽器
網站性能測試的指標緩存
WEB應用服務器tomcat
數據庫服務器安全
系統服務器服務器
客戶關心的指標
日訪問量
同時在線人數
最大併發鏈接數(網站最多能同時處理的鏈接請求數)最低60-100
訪問響應時間(網站服務器生成HTML的時間,網路傳輸的時間,瀏覽器解析的時間)
同時在線人數和最大併發的區別!
併發數通常都是大於同時在線人數的
(網頁 圖片 javascript)等同時請求 叫併發
網站性能具體體現
1.首屏時間(用戶體驗最直接反應標準)
2.網頁訪問可用性
3.創建鏈接時間(包含DNS時間)
4.DNS時間
雅虎的黃金法則 1內容 2服務器 3Cookie 4css 5javascript 6圖片 7移動應用
YSlow工具(能夠給網站打分)
5.重定向時間
6.第一個數據包時間
7.總下載時間
8.錯誤狀況
如何實現的網站優化
網頁內容優化
一。減小HTTP請求
減小頁面元素(簡化頁面設計)
》合併文件(Js或CSS文件)【經常使用】 這個是減小圖像請求的有效方法(把全部背景圖像都放到一個圖片文件當中,而後經過CSS 的background-image和background-position這兩個屬性來顯示圖片的不一樣部分)
》圖片地圖(不經常使用)通常只有圖片全部部分組合在一塊兒是使用
》CSS Sprites圖片拼合
二。減小DNS查找次數(通常dns查找都是有緩存的)
減小主機名的數量能夠減小DNS查找數量(能夠節省響應時間和頁面中並行下載的數量,但會增長響應時間) 指導原則:這些頁面中的內容分割成至少兩部分但不超過四部分 結論:減小DNS查找次數與保持並行下載兼顧
三,避免跳轉(跳轉會影響用戶體驗)
》301代碼
》302代碼
結論 開發時注意不要忽略URL本該有的斜槓(/) 跳轉能夠採用配置Alias和MOD_rewrite等方法來代替
四。可緩存的AJAX
五。減小DOM元素(合理使用標籤元素)
六。儘可能避免使用iframe
iframe優勢(1.解決加載緩慢的第三方內容2.只須要修改一個iframe的內容,即可以改變全部應用該iframe的頁面)
iframe缺點(1.即便內同爲空,加載也須要時間2.組織頁面加載3.沒有語意)
七。避免404錯誤
結論:網站發佈前要盡享周全的測試,使用一些isp提供商的網站服務器工具來檢測404錯誤
圖片優化(瞭解)
》使用工具優化圖片
2把gif格式轉換成png格式3在全部的png圖片上運行pngcrush或其餘png優化工具4.在全部的jpeg圖片上運行jpegtran(壓縮圖片容量)避免使用bmp格式
》使用合理的圖片尺寸
儘可能不要同使用標籤元素控制圖片的大小
》網站圖標favicon.ico要小並且可緩存
》用CSS Sprites優化頁面小圖片
在Sprites中儘可能橫排列你的圖標2把顏色相近的組合在一塊兒(低於256色)不要再Sprites中不要在中間劉較大的空隙
CSS和JavaScript優化
》把樣式表置於頂部 結論:開發階段檢驗室和代碼分離(便於代碼的複用),開發完畢後再將樣式放在頁面的<head>頭部中
》用<link>代替@import實現樣式表的導入(最好不使用)
》避免使用濾鏡 結論 避免使用濾鏡,使用PNG格式的圖片來代替,主流瀏覽器通常都支持這種格式,必要時使用CSS Hack來處理IE6瀏覽器下的效果
》精簡CSS和javascript
工具
1JsMin(腳本壓縮工具)
2YUI Compressor
結論:精簡代碼 採用縮寫
》把javascript放在html的底部
結論:把腳本放在HTML頁面的底部
(document.write()輸出語句例外)
優化Cookie
》縮小Cookie的大小
去除沒必要要的Cookie設置合理過時時間
》避免使用全局域名的Cookie
應該對圖片等頁面元素使用沒有Cookie的域名
服務器端的優化
》使用內容分發網絡Content Delivery Nerwork 簡稱 CDN 加快響應速度(成本高)
》爲文件頭指定Expires或Cache-Control
1靜態能容設置Expires
2動態內容設置Cache-Control
結論:對於靜態內容,設置文件頭過時時間Expires的值爲「 Never expire」(永不過時)
》使用Gzip壓縮文件內容
配置tomcat中Server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/css,text/javascript"
/>
》使用GET來完成AJAX請求
獲取數據是用get發送是用post
網站的靜態化
動態網頁的弊端
1.服務器壓力大2.頁面響應時間長3.安全問題
實施靜態化的緣由
1.提升訪問速度2.減輕服務器壓力3.增強安全性4.利於搜索引擎收錄
網站靜態化的好處
》效率方面
純靜態化HTML頁面(效率是最高的,消耗最小,速度最快)
減輕服務器的壓力()
利於搜索引擎收錄(把動態網址進行URL重寫使其靜態化)
提升服務器的性能(靜態網站不用調用數據庫)
》安全方面
防SQL注入(不與數據庫鏈接)
網站出錯時,不影響網站正常訪問
網站靜態化實現方式
》模版技術(Velocity模版技術 )
數據庫查詢優化方法
》在查詢頻繁的列上添加合適的索引(避免表掃描)
判斷並創建必要的索引 對索引使用一些規則 合理的索引對SQL語句的意義
》儘可能少用in或not in
where子句中使用Exist 和NOT EXIST 代替IN和NOT IN
》儘可能少用*
》儘可能少用LIKE(沒法使用索引制約查詢速度)
爲何須要檢測網站性能
》性能環境發生改變
使用軟件監控網站的性能
開發期間(使用LoadRuner等專業負載測試工具)
使用LOadRunner等專業的負載測試工具
輕鬆建立虛擬用戶 建立真實的負載 定位性能的問題 分析結果以精肯定位問題所在 重複測試保證系統發佈的高可能性
網站運營期間的監測
監控寶(國內) SEVICEUptime(美國) UptimeRobot