zoukankan      html  css  js  c++  java
  • .net缓存自己总结的几条

    缓存运行原理:一旦你使用了一个具有OutoutCache内容的用户控件,系统会根据控件的创建形式相应的建立新的缓存(看备注)对象,然后在整个缓存周期内一直使用这个新的缓存对象,而不是使用用户控件本身。也就是说页面初此加载时是使用的用户控件本身,接下来在缓存周期内就是使用的缓存对象。因此在页面上动态更改有缓存的控件时会出错,具体的请看http://www.blueidea.com/tech/program/2004/2010.asp

    备注:在页中声明并使用了为输出缓存指定的用户控件,则 ASP.NET 页分析器将根据用户控件的创建方式,对两个对象类型中的一个类型进行实例化。如果以声明方式创建用户控件,会添加 StaticPartialCachingControl 对象;如果使用 LoadControl 方法以编程方式创建用户控件,会添加 PartialCachingControl 对象

    petshop4为什么更区向于页面缓存,是因为应用程序缓存只缓存业务数据,而页面缓存则能够将业务数据与整个页面放入到缓存中。这种方式比起应用程序缓存而言,在性能上有很大的提高。

    以下为自己关于页面缓存的想法
    先在页面上加入<%@ OutputCache Duration="100000" VaryByParam="page" %>是为了给整个页面/控件加入缓存
    然后在代码页配置CachePolicy.Dependency = DependencyFacade.GetInfoDependency();是为了给这个缓存加入依赖关系.如果这个依赖关系里面的数据有变化,那缓存里写之相关的数据也要变化或者说更新.这个其实跟应用程序缓存差不多一样,只是应用程序缓存是缓存数据.在petshop4中,加入了poxy模式,其实也就是为了判断有没有存在这个缓存,如果没有就从数据库读出来再写入缓存.而在页面加入了缓存本来就确定了该页面一定存在(如果没有这个页面你怎么加页面缓存代码),也就是说页面缓存前提就确定了缓存者的存在.所以就不用像poxy模式那样判断该cach有没有存在等。


    页面缓存对于ajax技术的几点反思
    页面缓存是缓存了整个页面(包括数据,HTML),缓存后就是一个缓存的整体.我们知道ajax技术就是可以片段更新.所以在页面缓存上用ajax的分页不太成功(个人想法).本来缓存对象就是一个整体了,没办法再把他分成一小块来更新。对于这种情况个人认为用应用程序缓存。因为我们知道应用程序缓存主要是用来缓存数据,换句话说就是一般只用来缓存我们分页的那些数据,这样就不会造成我们说上面说"不能把缓存分成小块来更新"。综上所述页面缓存和应用程序缓存没有哪个最好,只有在什么情况下用哪个最好。
  • 相关阅读:
    c数据结构 顺序表和链表 相关操作
    查找字符串中是否存在指定的字符
    比较两人生日相差多少天
    十进制转化为二进制(栈算法)
    c数据结构栈的基本操作(字符逆序输出)
    Django笔记-登陆、注册(利用cookie实现)
    Django笔记-常见错误整理
    Django笔记-post与get方法相关出错记录
    Django笔记-登陆注册-1
    Django笔记-helloworld
  • 原文地址:https://www.cnblogs.com/SALIN/p/1232709.html
Copyright © 2011-2022 走看看