iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET局部缓存怎么优化
  • 751
分享到

ASP.NET局部缓存怎么优化

2023-06-17 12:06:44 751人浏览 安东尼
摘要

这篇文章主要讲解了“asp.net局部缓存怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.net局部缓存怎么优化”吧!一:局部缓存常用解决方案针对上面的需求,有几类解决方案:C

这篇文章主要讲解了“asp.net局部缓存怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.net局部缓存怎么优化”吧!

一:局部缓存常用解决方案

针对上面的需求,有几类解决方案:

Client Side Includes(CSI):通过frame、iframe、 javascript、javacript+ajax等方式将另外一个页面的内容动态包含进来。像现在流行的Jquery等javascript库对此有较好的支持。

优点:能够利用浏览器客户端并行处理及装载的机制;通过浏览器缓存机制可以降低网络传输时间,提高性能;计算放在客户端,能够降低服务器端压力

缺点:搜索引擎优化问题;javascript兼容性问题;客户端缓存可能导致服务器端内容更新后不能及时生效;XSS等安全隐患

Server Side Includes(SSI):

优点:SSI技术是通用技术,不受具体语言限制,只需要WEB服务器或应用服务器支持即可,Ngnix、Apache、Tomcat、Jboss等对此都有较好的支持

缺点:SSI在语法上不能够直接包含其他服务器的url(当然也可以通过redirect等来变通实现),因此在需要充分利用缓存及负载均衡的环境下相对不是很灵活。

当然如果不使用单独的缓存服务器,而是使用Ngnix,利用Ngnix对SSI及Memcached支持,通过NginxhttpssiModule、 NginxHttpMemcachedModule也可以实现页面缓存,但与专业的缓存服务器(例如Varnish)相比较,Ngnix作为缓存服务器只适合于中小规模的场合。

使用ASP.NET的片段缓存

可以利用用户控件将页面分段,在ascx文件中写入缓存的语句,而不在aspx文件中写缓存语句,这样ASP.NET就可以只缓存ascx片断的输出了。

缺点:片段缓存不支持Location特性;缓存页面片段惟一合法的地方是web服务器。这是因为片段缓存在ASP.NET中是新的功能,所以浏览器和代理服务器不支持。由于它不是W3C标准,像SQUID和VARNISH这样的代理服务器也不支持它。

Edge Side Includes (ESI):

Edge Side Includes(ESI) 和Server Side Includes(SSI) 和功能类似。SSI需要特殊的文件后缀(shtml,inc)。ESI可以直接通过URI包含远程服务器文件,ESI更适合用于缓存服务器上,缓存整个页面或页面片段,因此ESI特别适合用于缓存。本文要介绍的就是ESI的方式来支持局部缓存。

优点:ESI是一个W3C标准,被当下流行的缓存服务器SQUID,Varnish支持。

二:ESI的ASP.NET实现

本文所要阐述的是ESI局部缓存的实现。主页面(test1.aspx)前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="WebApplication2.aspx.test1" %> <%@ Import Namespace="System.Globalization" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <div>这里是局部缓存</div> <esi:include src="test2.aspx"/> <div>局部缓存结束</div> <%=DateTime.Now.ToString("U", DateTimeFORMatInfo.InvariantInfo)%> </body> </html>

主页面的后台请参看上篇,对主页面采取了缓存策略,即在页面中使用esi:include标识。

被包含的页面(test2.aspx)的前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="WebApplication2.aspx.test2" %>  <%@ Import Namespace="System.Globalization" %> <div>

局部缓存中的页面:

<%=DateTime.Now.ToString("U", DateTimeFormatInfo.InvariantInfo)%> </div>

被包含的页面的后台什么也不需要处理,也就是不为它加入任何缓存策略,该页面是实时的。

VARNISH配置文件如下:

backend default {  .host = "192.168.0.77";  .port = "80";  }  sub vcl_fetch {  remove beresp.http.Set-Cookie;  if(req.url ~ "test1.aspx") {  esi;  }  if(req.url ~ "test2.aspx"){  return (pass);  }  }  sub vcl_recv {  remove req.http.Cookie;  #remove req.http.Accept-Encoding;  #remove req.http.Vary;  }  sub vcl_hit {  if(req.http.Cache-Control~"no-cache"||req.http.Cache-Control~"max-age=0"||req.http.Pragma~"no-cache"){  set obj.ttl=0s;  return (restart);  }  return (deliver);  }  sub vcl_deliver {  if (obj.hits >0) {  set resp.http.X-Cache = "HIT";  } else {  set resp.http.X-Cache = "MISS";  }  }

上文的vcl_fetch函数中加了两个判断,指的是:如果碰到test1.aspx就处理esi标识,如果碰到test2.aspx,就直接忽略让后台IIS处理。

值得注意的是,启动命令中加入了-p选项(这是一个varnish的小问题,请查阅参考,此处不表):

varnishd -a :8011 -T :8088 -f c:/varnish/etc/default.vcl -p esi_syntax=0x1 -s file,c:/varnish/var/cache,100M

三:效果

启动varnish后,我们发现,对于test2.aspx,由于我们使用了esi对其进行了包含,而test2.aspx又未进行缓存,所以在test1.aspx的缓存有效期内,随着每一次刷新,test1.aspx的内容没有变动,但是所包含的test2.aspx区域,会实时刷新。

感谢各位的阅读,以上就是“ASP.NET局部缓存怎么优化”的内容了,经过本文的学习后,相信大家对ASP.NET局部缓存怎么优化这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: ASP.NET局部缓存怎么优化

本文链接: https://www.lsjlt.com/news/288914.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET局部缓存怎么优化
    这篇文章主要讲解了“ASP.NET局部缓存怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET局部缓存怎么优化”吧!一:局部缓存常用解决方案针对上面的需求,有几类解决方案:C...
    99+
    2023-06-17
  • ASP.NET站点怎么优化
    本篇内容主要讲解“ASP.NET站点怎么优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET站点怎么优化”吧!在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不...
    99+
    2023-06-17
  • ASP.NET配置怎么优化
    这篇文章主要讲解了“ASP.NET配置怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET配置怎么优化”吧!ASP.NET性能优化之状态管理a)  &nb...
    99+
    2023-06-18
  • 怎么在ps中局部虚化
    本篇文章为大家展示了怎么在ps中局部虚化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用Photoshop软件打开需要模糊的图片,点击左侧工具栏的选框工具,这里选择矩形选框工具,拖动鼠标在图片上画...
    99+
    2023-06-14
  • ASP.NET中怎么构建自定义文件缓存
    本篇内容介绍了“ASP.NET中怎么构建自定义文件缓存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ASP.NET的输出缓存(即静态HTML...
    99+
    2023-06-17
  • 怎么避免ASP.NET缓存占用系统资源
    这篇文章主要介绍“怎么避免ASP.NET缓存占用系统资源”,在日常操作中,相信很多人在怎么避免ASP.NET缓存占用系统资源问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么避免ASP.NET缓存占用系统资源...
    99+
    2023-06-18
  • Centos7中怎么优化磁盘缓存读写速度
    今天小编给大家分享一下Centos7中怎么优化磁盘缓存读写速度的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Linux中的/...
    99+
    2023-06-27
  • ASP.NET清空缓存时遇到的问题怎么解决
    这篇文章主要介绍“ASP.NET清空缓存时遇到的问题怎么解决”,在日常操作中,相信很多人在ASP.NET清空缓存时遇到的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET清空缓存时遇到的...
    99+
    2023-06-17
  • redisson中怎么实现缓存序列化
    redisson中怎么实现缓存序列化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。redisson缓存序列化几枚坑1、返回值为Map<T, K> 的...
    99+
    2023-06-20
  • Linq中怎么实现隐式类型化局部变量
    本篇文章为大家展示了Linq中怎么实现隐式类型化局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Linq隐式类型化局部变量还有另一种语言功能被称为Linq隐式类型化局部变量(或简称为 var)...
    99+
    2023-06-17
  • win7局域网访问响应慢怎么优化
    本篇内容主要讲解“win7局域网访问响应慢怎么优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7局域网访问响应慢怎么优化”吧!优化方法:按win+r打开运行窗口,输入“services....
    99+
    2023-06-28
  • SEO优化中怎么有效的布局内链
    SEO优化中怎么有效的布局内链?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。内页多关键词指向首页  现在还有很多网站在内容页搞了好多关键词,但是指向的全都是首页...
    99+
    2023-06-10
  • win7物理内存怎么优化
    本文小编为大家详细介绍“win7物理内存怎么优化”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7物理内存怎么优化”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win7物理内存优化教程首先使用“win+r”...
    99+
    2023-07-01
  • mysql运行sql文件缓慢怎么优化
    当MySQL运行SQL文件缓慢时,可以考虑以下优化方法:1. 增加内存缓冲区:通过修改MySQL配置文件中的innodb_buffe...
    99+
    2023-10-20
    mysql sql
  • 云服务器部署项目缓存旧项目怎么办
    如果您正在部署旧项目并想要缓存旧项目,以下是一些建议: 确认旧项目的数据库版本:查看旧项目的数据库版本是否正确,确保旧版本已经安装或更新。 将缓存存储位置更改为新的服务器:如果旧项目使用现有的服务器进行缓存,则需要对缓存存储位置进行更改...
    99+
    2023-10-26
    项目 缓存 服务器
  • mySQL中怎么优化虚拟内存
    这篇文章给大家介绍mySQL中怎么优化虚拟内存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 更改后如下: innodb_buffer_pool_size=576M ->25...
    99+
    2022-10-18
  • Linux 开发技术中的 PHP 缓存优化策略是什么?
    在 Web 开发中,PHP 是一种非常流行的编程语言,但是在高并发环境下,性能问题是不可避免的。一个常见的性能瓶颈是数据库查询。为了解决这个问题,可以使用缓存技术来减少数据库查询次数。本文将介绍 Linux 开发技术中的 PHP 缓存优化...
    99+
    2023-08-18
    缓存 linux 开发技术
  • 云服务器部署项目缓存旧项目怎么删除
    云服务器部署项目缓存旧项目可以按照以下步骤进行删除: 打开终端程序,进入控制台界面。在控制台界面中点击 "添加任务",然后选择想要删除的缓存项目。 在弹出的对话框中,找到要删除的缓存项目,然后单击“删除”按钮。 在弹出的确认框中,确保该...
    99+
    2023-10-26
    项目 缓存 服务器
  • 云服务器部署项目缓存旧项目怎么设置
    如果您想将旧项目迁移到云服务器上,可以按照以下步骤进行操作: 选择您的旧项目,确保已经安装了所需的依赖项(一般指数据库、Web应用程序或其他依赖项)。 在旧项目中选择“迁移”选项卡,点击“确定”按钮。 在迁移过程中,您会看到“迁移完成”...
    99+
    2023-10-26
    项目 缓存 服务器
  • 云服务器部署项目缓存旧项目怎么办啊
    如果您正在部署的云服务器项目依赖于旧的项目,那么您可能需要考虑如何处理缓存旧的项目。 以下是一个可能的缓存旧项目的方法: 从旧的项目中删除旧的代码或数据。通常情况下,旧的项目代码和数据都已经不再使用。删除这些项目后,可以释放旧数据和缓存...
    99+
    2023-10-26
    项目 缓存 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作