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

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

二、SSI(Server Side Includes) 
含義:通過註釋行SSI命令加載不同模塊,構建爲html,實現整個網站的內容更新; 
原理:通過SSI調用各模塊的對應文件,最後組裝爲html頁面,需要服務器模塊支持(具體配置本文不做詳述),比如:apache服務器需要開啓mod_include模塊; 

例子: 

<!--#include virtual="header.html" -->
<!--#include virtual="login.html" -->
<!--#include virtual="footer.html" -->
優點:不受具體語言限制,比較通用,只需要Web服務器或應用服務器支持即可,Ngnix、Apache、IIS等對此都有較好的支持。 
缺點:SSI只能在當前服務器上包含加載,不能夠直接包含其他服務器上的文件,即不能跨域包含; 

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

三、ESI(Edge Side Includes) 
含義及原理:通過使用簡單的標記語言來對那些可以加速和不能加速的網頁中的內容片斷進行描述,每個網頁都被劃分成不同的小部分分別賦予不同的緩存控制 策略,使Cache服務器可以根據這些策略在將完整的網頁發送給用戶之前將不同的小部分動態地組合在一起。通過這種控制,可以有效地減少從服務器抓取整個頁面的次數,而只用從原服務器中提取少量的不能緩存的片斷,因此可以有效降低原服務器的負載,同時提高用戶訪問的響應時間。與SSI不同的是,ESI多在緩存服務器或代理服務器上執行! 
例子:     

<html>
<head><title>ESI Demo</title></head>
<body>
<esi:include src="login.php" />
<div><h3>這中間是可靜態化html內容</3></div>
</body>
<html>
優點:可用於緩存整個頁面或頁面片段,比較適合用於緩存服務器上; 
缺點:目前支持ESI的軟件還比較少,官方更新也略顯緩慢,因此使用不是很廣!
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章