ASP.NE的缓存技术提高Web站点的性能

一:我们为什么要使用缓存?

先来理解一下asp.net缓存技术的基本原理:把访问频繁的数据以及需要花大量的时间来加载的数据缓存在内存中,那么用户在下次请求同样的数据时,直接将内存中的数据返回给用户,从而大大的提高了应用程序的性能。

二:缓存的分类(整页缓存,页面部分缓存,应用程序缓存)

那么什么时候我们要用到整页缓存,什么时候用到部分页面缓存,什么时候我们要用到应用程序缓存呢?

>>整页缓存的情况:

a)不需要平凡更新数据的页面

b)占用大量时间和资源的页面

>>页面部分缓存:

顾名思义,页面部分缓存,则只需要缓存页面中的部分页面,常用方法是“缓存后替换”,就是下缓存整个页面,然后替换页面中不需要缓存的地方。这里要用到一个Substitution控件实现,稍后详细讲解它的应用。

>>应用程序缓存:

用来存储与应用程序相关的对象,主要由Cache类来实现,它给我们提供了一种机制,使我们可以通过编码的方式来灵活控制缓存操作。

三:如何使用"整页缓存"?

首现我们需要在页面顶部加上这样一个指令:

<%@ OutputCache Duation="5" VaryByParam="id,name" VaryByControl="none" Location="any" VaryByCustom="browser" %>

以下详细介绍一下各个属性的用途:

      • Duration:必要属性,就是这个页面过多久后缓存不在起到作用,单位是s
      • VaryByParam:以分号分隔的字符串变量/none/* ,none表示不随任何参数彼变化缓存,*表示为任何一个有效的参数缓存一个单独的页面。 注意:如果没有BaryByControl属性,该属性是必要的。
      • VaryByControl:以分号分隔的字符串变量,代表用户控件中声明的服务器控件的ID,注意:如果没有VaryByParam,该属性是必须的。
      • VaryByCustom:自定义输出缓存的要求,它需要在global.asax中定义自定义变动,一般默认值为browser,根据了浏览器决定缓存要求。
      • Location:指定输出缓存项的位置,OutputCacheLocation枚举,默认值为any。

例如:现在我们有一个图书详情页面,这里就拿当当网的图书详情页面来举例,当当网当你选择一本书后,进入到图书详情页,详情页肯定会包含:该图书的点击量,价格,目录信息,作者,出版社等等的一些介绍。

那么我们要缓存这个页面首现需要在页面顶部添加这样一个指令:

1)首现无条件缓存:<%@ OutputCache Duration="120" VaryByParam="none" %>

这个表示什么意思呢?就是这个页面缓存时间为120秒,假如你进到这个详情页,然后卖家在后台修改了图书的出版社,那么你现在无论怎么刷新,你看到的价格始终都是刚进页面时的出版社信息。必须等到120s后,点击刷新才可以看到卖家修改后的出版社信息。

2)根据条件缓存:<%@ OutputCache Duration="120" VaryByParam="bookId,bookName" %>

这个就是说以bookId或者bookName作为参数传递的页面都将被缓存120s,例如:http://web/BookDetails.aspx?bookId ,页面会被缓存120s。

3)根据VaryByControl属性:<%@ OutputCache Duration="120" VaryByParam="none" VaryByControl="ddlCategories" %>

当需要缓存的数据随页面上的某个控件值的改变而改变,根据asp.net控件的命名规则,大家都知道ddlCategories控件就是一个图书的分类控件了(DropDawnList)。

现在假如有一个图书分类的页面,那么假如卖家修改了某个分类下的某一本图书的信息,当用户在页面中查看到的还是修改之前的信息,只有在更换ddCategories控件的项后,在更新才会显示修改后的图书信息。

三:如何使用"页面部分缓存"?

<%@ OutputCache Duration="120" VaryByParam="none"  %>

什么情况我们要使用到部分页面缓存呢,还是拿图书详情页来举例子:现在要统计图书时实的点击量。

首现放入一个:<asp:Substitution ID="Sub1" runat="server" MethodName="GetClickCount" />  控件。

这个控件就是用来显示点击量的,我们可以看到MethodName属性调用了一个GetClickCount()方法。

static string GetClickCount(HttpContext contxt)

{

//根据图书ID查询本图书的点击量

int clickCount = manage.GetClick(bookId);

return clickCount.ToString();

}

假如现在点击量是1000次,那么你刷新后,点击量可能变成了1000+次了,因为此时此刻该图书可能还有其他的用户在点击访问。由此证明该图书的点击量并没有被缓存起来。

这里需要注意的是:Substitution控件的MethodName属性所调用的方法必须满足以下三个条件。

1)必须是静态static方法

2)返回值必须是String类型

3)参数类型必须是HttpContext类型

时间: 2024-10-10 13:21:11

ASP.NE的缓存技术提高Web站点的性能的相关文章

提高 Web 站点性能的最佳实践

本文内容 提高 Web 站点性能的最佳实践 最大限度减少 HTTP 请求 使用内容分发网络(CDN) 添加 Expires 或 Cache – Control 头 Gzip 组件 CSS 放在页面顶部 JavaScript 放在页面底部 避免 CSS 表达式 使用外部 JavaScript 和 CSS 减少 DNS 查询 精简 JavaScript 和 CSS 避免重定向 删除重复的脚本 配置 ETags 使得 Ajax 可缓存 尽早强制地发送缓冲给客户端 用 GET 发送 Ajax 请求 延迟

用ASP编程控制在IIS建立Web站点

''******************************************************* '' 创建一个WebServer '' 必须参数:WRoot,为创建站点的物理目录:WComment为站点说明:WPort为站点端口:ServerRun为是否自动运行 '' 当创建成功时返回1,失败时提示退出并返回0,当创建站点成功但启动失败时返回2 ''******************************************************* ''******

用缓冲技术提高JSP应用的性能和稳定性之OSchche应用(3)

Oscache 特点 缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存. 拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性. 永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启. 支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码. 缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要

ASP.NET Core 缓存技术 及 Nginx 缓存配置

前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx的反向代理来降低我们后端应用程序的压力.那除了以上两点之外,其实我们还可以利用代理服务器的缓存功能来进一步的降低后端应用程序的压力,提升系统的吞吐量(tps).这一篇就来看一下具体应该如何去做吧. 目录 WEB 缓存 ASP.NET Core 缓存 内存缓存 分布式缓存 Response 缓存 Ng

PHP利用memcache缓存技术提高响应速度

PHP下memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问.memcache也提供用于通信对话(session_handler)的处理. memcache既可以在linux下使用,也可以在windows系统下使用. <?php header("content-type:text/html;charset=utf-8"); $mem = new Memcache; $mem->conn

如何提高web页面的性能

1.浏览器渲染原理解析 想要提高网页的性能,首要的便是要理解浏览器渲染原理,下面关于浏览器的原理解析,我们以chrome内核webkit为例,其他内核的浏览器原理也基本大同小异,可触类旁通. 如上图所示,浏览器解析页面步骤可分为: * 解析HTML(HTML Parser) * 构建DOM树(DOM Tree) * 构建CSSOM树(Style) * 构建渲染树(Render Tree) * 页面布局(Layout) * 绘制渲染树(Painting) 这一过程可在chrome开发者工具的时间线

web站点服务器日志管理及分析

管理Web网站不只是监视Web的速度和Web的内容传送.它不仅要关注服务器每天的吞吐量,还要了解这些Web网站的外来访问,了解网站各页面的访问情况.根据各页面的点击频率来改善网页的内容和质量,提高内容的可读性,以及跟踪包含有商业交易的步骤及管理Web网站"幕后"的数据等. 为了更好地提供WWW服务,监控Web服务器的运行情况.了解网站内容的详细访问状况就显得越来越重要和迫切了.而这些要求都可以通过对Web服务器日志文件的统计和分析来实现.本文将对Web服务器日志分析的原理和技术进行讨论

[.net 面向对象程序设计进阶] (14) 缓存(Cache) (一) 认识缓存技术

[.net 面向对象程序设计进阶] (14) 缓存(Cache)(一) 认识缓存技术 本节导读: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率. 本节将介绍如何利用缓存写出高效率的代码. 1. 什么是缓存(Cache)? 缓存(Cache)是一种用空间换取时间的技术 存在于计算机中很多地方,用来将一些慢速设备中的常用数据保存在快速设备中,取数据的时候直接从快速设备中取. 比如CPU二级缓存.内存.windows文件读取缓存. 2. .NE

构建高可用web站点学习--前言

前言:本人对于提高web站点的访问量等的有很浓厚的兴趣,也学习了将近一年的时间,希望能总结点东西,虽然很多东西都是从书籍和资料中学习的,而不是原创,但是这是我总结的一点感悟和进行的分类吧. 本系列文章大多为谈论一些基本思想.至于代码实现和服务器的搭建和配置,可能不会涉及到,不过其中会涉及到一些基本的参数配置,所以要求对服务器的搭建和配置有基本的了解.因为搭建和配置的资料网上和书本都 很多,我在这里就能不说就不说了.免得影响文章的长度和关注的焦点. 目录结构: (一)单个服务器如何处理请求 (二)