動態緩存技術之CSI,SSI,ESI

 平時咱們談頁面,大都數是以頁面爲單位的。
1、CSI (Client Side Includes)
含義:經過iframe、javascript、ajax等方式將另一個頁面的內容動態包含進來。
原理:整個頁面依然能夠靜態化爲html頁面,不過在須要動態的地方則經過iframe,javascript或ajax來動態加載!
例子:<iframe src='http://abroad.e2bo.com/index.php' border='0'></iframe>
優勢:相對比較簡單,不須要服務器端作改變和配置;
缺點:不利於搜索引擎優化(iframe方式), javascript兼容性問題,以及客戶端緩存問題可能致使更新後不能及時生效!對於客戶體驗也不夠好!

2、SSI(Server Side Includes)
含義:經過註釋行SSI命令加載不一樣模塊,構建爲html,實現整個網站的內容更新;
原理:經過SSI調用各模塊的對應文件,最後組裝爲html頁面,須要服務器模塊支持(具體配置本文不作詳述),好比:apache服務器須要開啓mod_include模塊;
例子:
Html代碼   收藏代碼
  1. <!--#include virtual="header.html" -->  
  2. <!--#include virtual="login.html" -->  
  3. <!--#include virtual="footer.html" -->  

優勢:不受具體語言限制,比較通用,只須要Web服務器或應用服務器支持便可,Ngnix、Apache、IIS等對此都有較好的支持。
缺點:SSI只能在當前服務器上包含加載,不可以直接包含其餘服務器上的文件,即不能跨域包含;

NGINX的SSI用法
http://wiki.nginx.org/HttpSsiModuleChs

3、ESI(Edge Side Includes)
含義及原理:經過使用簡單的標記語言來對那些能夠加速和不能加速的網頁中的內容片段進行描述,每一個網頁都被劃分紅不一樣的小部分分別賦予不一樣的緩存 控制 策略,使Cache服務器能夠根據這些策略在將完整的網頁發送給用戶以前將不一樣的小部分動態地組合在一塊兒。經過這種控制,能夠有效地減小從服務器抓取整個 頁面的次數,而只用從原服務器中提取少許的不能緩存的片段,所以能夠有效下降原服務器的負載,同時提升用戶訪問的響應時間。與SSI不一樣的是,ESI多在 緩存服務器或代理服務器上執行!
例子:      
Html代碼   收藏代碼
  1. <html>  
  2. <head><title>ESI Demo</title></head>  
  3. <body>  
  4. <esi:include src="login.php" />  
  5. <div><h3>這中間是可靜態化html內容</3></div>  
  6. </body>  
  7. <html>  
優勢:可用於緩存整個頁面或頁面片斷,比較適合用於緩存服務器上; 缺點:目前支持ESI的軟件還比較少,官方更新也略顯緩慢,所以使用不是很廣!   
相關文章
相關標籤/搜索