页面片段缓存

平常我们谈到网络缓存技术,大多是以页面为单位的,比如,新闻网站中将执行后的结果,缓存为一个静态html文件,下次访问时就直接访问这个静态页面了!减轻了服务器压力!但是,如果一个页面大部分是可静态的,但是有一部分却需要是动态的咋办呢? 如下图中画红线处,就需要动态,时时探测用户是否登录!这就可以使用动态内容缓存技术!

 


 

动态内容缓存技术,总体来说就是该静态化的静态化,该动态的保持动态,最后进行组合!

可行的方案大致有三种: 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只能在当前服务器上包含加载,不能够直接包含其他服务器上的文件,即不能跨域包含;

 

三、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的软件还比较少,官方更新也略显缓慢,因此使用不是很广!

 

  结语,该文章仅仅是总结三个可用于动态内容缓存的方案,具体在项目中用不用,用哪个,那就需要具体情况具体分析了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值