在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
cpu像个老牛一样,干活非常快(执行速度非常快),而硬盘的读写速度非常慢,像个蜗牛一样,我们写的应用程序说白了就是cpu执行的指令的集合。如果没有缓存的话,cpu就会不停的等待,效率就会变得非常低,而我们的内存每秒钟能够读写执行几千条,我们磁盘上的指令就可以加载在内存中,内存将数据准备好后送给cpu执行。如果内存中没有指令了那么就从磁盘当中读取,这样就解决了cpu执行效率低的问题。 缓存是一种用空间换取时间的技术,用来将一些慢速设备中的常用数据保存在快速设备中,取数据的时候直接从快速设备中取,它是改进网站性能的第一个手段,Asp.net缓存主要分为:页面缓存,数据源缓存,数据缓存。灵活性从高到低依次为数据缓存,数据源缓存,页面缓存。 1.页面缓存: 给页面添加<%@ OutputCache Duration="5" VaryByParam="*" %> Duration表示哈U内存事件,以秒为单位,超出后缓存失效,再次生成以后还会缓存5秒。 这样就可以启用页面缓存,整个页面的内容都会被缓存,页面中的asp.net,数据等在缓存期间不会被运行,而是直接输出缓存的内容。 注意,这个缓存是在服务器端而不是在客户端,用HttpWacth也能看出服务器返回的响应。常用语帖子,新闻,视频之类的页面缓存。它在整个Aspnet应用程序生命周期第七个事件完了之后就不再继续往下执行了。 2.数据源缓存 设定ObejectDataSource的CacheDuration(缓存时间:秒),EnableCaching=true,这样每隔CacheDuration指定的时间段才调用SelectMode执行的方法类执行数据库查询,其它时候都是直接返回内存的数据。在缓存期间,绑定控件向ObjectDataSource要数据,ObejectDataSource直接将缓存的数据返回给控件。不要去向TypeName指向的类要数据。 3.开发人员自定义缓存 if(!IsPostBack) { //在缓存中写入数据 Cache.Insert("de","sssss");//这就是在缓存中写东西了 //缓存中的内容是不会丢失的,只有当进程关闭了cache才会消失释放,在此期间,线程是安全的。 //最后一个参数是滑动过期时间,如果有过期时间的限制,那么滑动过期时间一定要设置为Zero. Cache.Insert("de","sssssssss",null,DataTime().Now,AddSencond(10),TimeSpan.Zero); //滑动窗口机制 Cache.Insert("de", "ssssss", null, DateTime.MaxValue, new TimeSpan(0,0,3)); } 4.数据库缓存依赖: -S服务器名称 -E集成身份验证 -ed启动 -d数据库名称 -et指定缓冲依赖的表名 -t表名 依赖于数据库的web.config配置 在page页面中: //当依赖的表发生变化时,缓存失效 System.Web.Caching.SqlCacheDependency dep = new System.Web.Caching.SqlCacheDependency("BookRegulation", "Branch");
|
请发表评论