高效能建站指南筆記
壓縮css和js指令碼是非常值得的。
根據經驗,通常對大於1kb或者2kb的檔案進行壓縮。對圖片進行壓縮是得不償失的。因為會消耗許多cpu資源(包括伺服器端和客戶端的)
LoadModule expires_module modules/mod_expires.so
Cache-Control:Private 禁用代理
apache的版本與壓縮元件的關係:1.3對應了mod_gizp 2.x對應了mod_deflate
也就是:1.3的gizp功能由mod_gizp提供。那麼2.x版本中的gzip功能由mod_deflate提供
首頁平均使用了6-7個指令碼檔案,1-2個css檔案 soutuan.com使用了13個js檔案請求
精簡js程式碼工具:雅虎公司jsmin DoJocompressor
使用yahoo!UI進行ajax開發,好處在哪裡?
使用keep-Alive那麼就意味著:保持著連線的狀態。tcp連線是開啟的。此時不需要查詢dns
dns快取到底可以提高什麼呢?輸入www.soutuan.com,那麼首先瀏覽器或者作業系統會向dns伺服器發出查詢ip的請求。這一段需要時間
怎麼測試我的頁面產生多少dns查詢時間?
為什麼需要將樣式放在頂部才好?
就是為了實現,當下載頁面的時候,頁面逐步呈現的效果。而不是讓使用者看到一個殘缺的頁面。就比如開啟頁面的時候變亂了。根據一個原理:元件(css,js)是按照程式碼在文件中的順序進行下載的。
而把樣式表放在頂部,會阻礙頁面逐步呈現(難怪,在ie下面經常出現空白現象)
只有在ie下才會產生這種延遲現象。也就是網速一慢的話,就會因為延遲而出現空白的效果。而不是逐步呈現的效果
ie有一種特效:儘管已經下載完所有元件,但是依然會等到樣式表下載完全才會呈現頁面
css放在底部的示範:
http:stevesouders.com/hpws/css-bottom.php
總結:樣式表放在頂部還是在底部不會影響整個 頁面的下載時間。調整位置後,頁面的整體下載時間還是不變的。
那麼,為什麼要換呢?就是想通過一種逐步呈現的現象,讓使用者感覺頁面現在速度更快了。
無樣式內容的css閃爍 http://stevesouders.com/hpws/css-fouc.php
就是。等到下載完成後,頁面的效果馬上進行了改變,像閃爍一樣的
304狀態碼就是告訴瀏覽器,我這個伺服器上的該檔案自生成日期來一直沒有修改過。並且就不再傳送響應體了(就是具體的css,html,js檔案內容)
expires頭部資訊簡單理解:?裡面是指定了該檔案的一個過期時間(表示到該時間為止,之前的響應才是有效的。之後無
效),告訴瀏覽器,在該時間之內,你可以使用本地儲存的副本。
不足:要求客戶端的時間和伺服器端的時間保持一個同步才行
替代expires的解決方案是max-age,假如同時使用兩者,max-age會重寫expires
使用mod_expires模組的一個命令可以配置,檔案的過期時間是請求後的多久。秒數計算
expires的根本目的是什麼?減少http的請求。而不是減少檔案(css,js)的傳送。因為不管你是否使用了expires,
假如瀏覽器檔案已經過期了,都會從伺服器下載新的檔案的。expires要做的只是,馬上就知道已經過期與否,這樣就不需要去請求一次(避免了一次請求),以便確定是否過期
響應中就已經發給瀏覽器,我這個檔案是否過期嗎?
If-Modified-Since是瀏覽器發給伺服器的請求頭。伺服器接到該值後,就會將last-modified與該值進行比較,以此確定是否有更新(沒有更新就返回 304 響應)
If-Modified-Since:伺服器發過來的該檔案的最後伺服器修改時間。快取在本地
只對網頁進行快取:
<meta http-equiv=”Cache-Control” content=”max-age=7200″ />
<meta http-equiv=”Expires” content=”Mon, 20 Jul 2009 23:00:00 GMT” />
對該頁面的js,css等檔案無效的
max-age與expires的區別:max-age的值格式是:秒。expires的時間格式是一具體的時間,比如:Thu, 01 Dec 1994 16:00:00 GMT (必須是GMT格式)也就是在這個時候過期。而max-age比如是7200秒。那麼就是在該頁面被該使用者請求的時間後7200秒後過期。
expires也可以不設定成具體的日期,而是以Atime格式。也就是相對最後訪問時間多少秒後過期。
expires和cache-control的另外一種區別:Expires頭內容和Cache-Control頭的max-age指令。這樣的說法,說明。expires和Cache-Control都是同一級別的。是一個頭。為文件生成Expires和Cache-Control頭是mod_expires模組的作用 cache-control是http1.1才引入的。以前沒有。
ExpiresByType 和 ExpiresDefault 指令就是設定具體的值。哪種型別的檔案,設定expires的值
前提:只有當ExpiresActive On才會按照上面兩個指令去生成頭
cache-control注意版本問題。是http1.1才引入的。而1.0並沒有完全實現。
Etages也是http1.1引入的。實體標籤。entity tages
etages也是跟if-modified-since類似方式。只是不是日期。而是標記,相當於一個版本。跟if-none-match(瀏覽器傳送給伺服器的)匹配。
etages只適合使用在這樣的情況:你的網站是宿主在同一臺伺服器上。如果在多臺伺服器就會帶來問題。因為,etages是針對寄宿網站來說才是唯一的。真是無法解釋這個?
# access (read the file`s contents)
# change the status (modify the file or its attributes)
# modify (change the file`s contents)
1。atime:最後一次讀這個檔案的時間,如使用more來讀這個檔案
2。ctime:最後一次修改該檔案的時間,如使用chmod來修改這個檔案的屬性
3。mtime:最後一次修改該檔案內容的時間,如使vi來修改這個檔案的內容
備註:這是剛畢業時候學習《高效能建站指南》記錄下來的
相關文章
- 讀書筆記–高效能網站建站指南(JS篇)筆記網站JS
- 齊博建站指南
- 《高效能JavaScript》讀書筆記JavaScript筆記
- 【讀書筆記】《高效能JavaScript》筆記JavaScript
- EBS DBA指南筆記筆記
- Docker 建站小記Docker
- 高效能javascript程式設計筆記JavaScript程式設計筆記
- 《高效能MySQL》筆記-併發控制MySql筆記
- 《高效能 JavaScript》讀書筆記(一)JavaScript筆記
- OpenStack實戰指南 筆記筆記
- [高效能MYSQL學習筆記]事務MySql筆記
- 《高效能MySQL》筆記-整體架構MySql筆記架構
- 高效能運算學習筆記(1)筆記
- 高效能web建站規則(將js放在頁面底部)WebJS
- AIX新手指南筆記 2AI筆記
- AIX新手指南筆記 1AI筆記
- Maven使用指南的筆記Maven筆記
- 高效能 MySQL【筆記】-架構與歷史MySql筆記架構
- 《高效能Mysql 第三版》筆記MySql筆記
- 高效能JS筆記3——DOM程式設計JS筆記程式設計
- 高效能MySQL讀書筆記---索引優化MySql筆記索引優化
- 高效能mysql筆記---mysql架構[-1-]MySql筆記架構
- 高效能web建站規則(儘量減少http請求)WebHTTP
- Go 入門指南學習筆記Go筆記
- React入門指南(學習筆記)React筆記
- 《JAVA學習指南》學習筆記Java筆記
- 《Haskell趣學指南》筆記之模組Haskell筆記
- EBS DBA指南筆記1 2 3筆記
- 《Git權威指南》讀書筆記Git筆記
- 【前端效能優化】高效能JavaScript讀書筆記前端優化JavaScript筆記
- 高效能JavaScript 重排與重繪 讀書筆記JavaScript筆記
- 《高效能iOS應用開發》讀書筆記iOS筆記
- 讀書筆記:高效能PHP應用開發筆記PHP
- oracle高效能sql調整-筆記1 (轉發)OracleSQL筆記
- 熱乎的前端筆試/面試/跳坑筆記(指南)前端筆試面試筆記
- 《Haskell趣學指南》筆記之函式Haskell筆記函式
- 《Haskell趣學指南》筆記之 MonoidHaskell筆記Mono
- 《Haskell趣學指南》筆記之 MonadHaskell筆記