源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET性能优化之局部缓存分析

  • 时间:2022-09-02 06:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET性能优化之局部缓存分析
在网站的开发过程中,经常碰到的一类需求场景是: 1:页面含热点新闻,热点新闻部分需要10分钟更新一次,而整个页面的其它部分1天内都不会变动; 2:首页的某个BANNER需要显式:欢迎***; 上面场景中的1,如果整个页面的缓存失效都定为10分钟,则势必增加性能开销,所以最好的策略是页面的不同部分采用不同的缓存失效时长。对于场景2也一样,我们不应该为了迁就某个BANNER不能应用缓存,就让整个页面都不支持缓存。 可以说,如果我们在开发网站过程中的缓存策略是不支持页面局部缓存的,整个架构就是不合理的。 [b]一:局部缓存常用解决方案 [/b]针对上面的需求,有几类解决方案: 1、Client Side Includes(CSI):通过frame、iframe、 javascript、javacript+ajax等方式将另外一个页面的内容动态包含进来。像现在流行的jquery等javascript库对此有较好的支持。 优点:能够利用浏览器客户端并行处理及装载的机制;通过浏览器缓存机制可以降低网络传输时间,提高性能;计算放在客户端,能够降低服务器端压力 缺点:搜索引擎优化问题;javascript兼容性问题;客户端缓存可能导致服务器端内容更新后不能及时生效;XSS等安全隐患 2、Server Side Includes(SSI): 优点:SSI技术是通用技术,不受具体语言限制,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、Tomcat、Jboss等对此都有较好的支持 缺点:SSI在语法上不能够直接包含其他服务器的url(当然也可以通过redirect等来变通实现),因此在需要充分利用缓存及负载均衡的环境下相对不是很灵活。 当然如果不使用单独的缓存服务器,而是使用Ngnix,利用Ngnix对SSI及Memcached支持,通过NginxHttpSsiModule、 NginxHttpMemcachedModule也可以实现页面缓存,但与专业的缓存服务器(例如Varnish)相比较,Ngnix作为缓存服务器只适合于中小规模的场合。 3、使用ASP.NET的片段缓存 可以利用用户控件将页面分段,在ascx文件中写入缓存的语句,而不在aspx文件中写缓存语句,这样ASP.NET就可以只缓存ascx片断的输出了。 缺点:片段缓存不支持Location特性;缓存页面片段惟一合法的地方是web服务器。这是因为片段缓存在ASP.NET中是新的功能,所以浏览器和代理服务器不支持。由于它不是W3C标准,像SQUID和VARNISH这样的代理服务器也不支持它。 4、Edge Side Includes (ESI): Edge Side Includes(ESI) 和Server Side Includes(SSI) 和功能类似。SSI需要特殊的文件后缀(shtml,inc)。ESI可以直接通过URI包含远程服务器文件,ESI更适合用于缓存服务器上,缓存整个页面或页面片段,因此ESI特别适合用于缓存。本文要介绍的就是ESI的方式来支持局部缓存。 优点:ESI是一个W3C标准,被当下流行的缓存服务器SQUID,Varnish支持。 [b]二:ESI的ASP.NET实现 [/b] 本文所要阐述的是ESI局部缓存的实现。主页面(test1.aspx)前台:
[url=https://www.varnish-cache.org/trac/ticket/352]https://www.varnish-cache.org/trac/ticket/352[/url] [url=http://cd34.com/blog/infrastructure/no-esi-processing-first-char-not/]http://cd34.com/blog/infrastructure/no-esi-processing-first-char-not/[/url] [url=http://hi.baidu.com/chuanliang2007/blog/item/075f67963e20f315d31b7035.html]http://hi.baidu.com/chuanliang2007/blog/item/075f67963e20f315d31b7035.html[/url] [url=http://www.w3.org/TR/esi-lang]http://www.w3.org/TR/esi-lang[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部