企业技术

缓存使用条件: 1.访问量大 2.数据不经常更新 缓存缺点:容易产生【脏数据】---  即:当用户第一次访问页面,读取数据库,并将数据存入缓存后,在该缓存失效前,其他访问都是读取缓存中的数据;但如果此期间数据库的数据发生改变,那么 缓存里保存的数据 和 数据库的数据就不一致了!这就是所谓的缓存脏数据。 解决问题:使用【缓存依赖】可以解决这个【脏数据】问题。即:启用依赖机制,此机制会负责监测物理数据(数据库/文本文件)是否发生改变,一旦发生改变则去缓存中删除对应的缓存(键值对)。

Session和Cache相同点: 1.都是保存状态的机制 2.都存在服务器端 3.键值对

Session和Cache的区别: Cache:所有用户都共有的,共享数据。 Session:单个用户使用,相互之间不共享Session数据。根据浏览器用Cookie保存的SessionId来决定访问的数据。

浏览器端缓存机制: 1.当浏览器使用get方式请求服务器时,浏览器会先到浏览器端临时文件夹中 根据页面名称 查找看是否有缓存版本,如果有,则直接读取,不再发送请求到服务器。 2.当浏览器使用post方式请求服务器时,浏览器会直接发送请求报文到服务器,而不去检查临时文件夹。   当时,当请求报文中包含If-Modified-Since时间的时候,服务器会根据该时间判断服务端缓存是否失效,如果没有失效,则返回304状态码给浏览器,浏览器则读取缓存。

服务器为什么会根据If-Modified-Since来生成304状态码? 1.服务器就知道浏览器端有缓存。 2.服务器就不再读取服务器端的缓存。 3.服务器生成的响应报文中就不必包含报文体(页面html代码),从而减轻了回传的数据量。 4.此机制也可以保证,浏览器端页面缓存和服务器端的缓存一致。

使用进程外Session的缺点: 1.必须序列化和反序列化 2.因为要把session数据发给 状态服务程序 或 数据库,所以存在发送数据时的资源消耗。 注意:当我们把网站部署到IIS后,配置文件里如果使用进程外 Session(数据库),就必须再配置文件中制定 数据库连接字符串。

1.HttpApliationFactory ->    1.1GetNormalApplicationInstance(HttpContext context) :        1.1.1通过反射的方式创建了 HttpApplication或者 Global.asax类对象        代码application = (HttpApplication) HttpRuntime.CreateNonPublicInstance(this._theApplicationType);        1.1.2调用程序员写的过滤器(HttpModule)集合里的Init方法为HttpApplication对象的事件注册方法。

http://localhost:3229/web/NewDetail/1

http://localhost:3229/web/NewDetail.aspx?id=1

ProcessRequestMain-> if (this.IsInAspCompatMode){AspCompatApplicationStep.OnPageStartSessionObjects();} PreInit-PerformPreInit()-> //预初始化:准备初始化页面控件,设置皮肤。 Init-InitRecursive(null)->//页面对象初始化 InitComplete(OnInitComplete-EventArgs.Empty)->//页面初始化完成:登记用户触发的事件。 if (this.IsPostBack){ -> LoadState-LoadAllState()加载ViewState,-> ProcessPostData-ProcessPostData(this._requestValueCollection, true)还原控件状态 }-> PreLoad-OnPreLoad(EventArgs.Empty) -> Load-LoadRecursive() -> if (this.IsPostBack){ ProcessPostData Second Try-ProcessPostData(this._leftoverPostData, false) -> Raise ChangedEvents-RaiseChangedEvents() -> Raise PostBackEvent-RaisePostBackEvent(this._requestValueCollection);}//触发控件事件 LoadComplete-OnLoadComplete(EventArgs.Empty) -> if (!this.IsCrossPagePostBack){->PreRenderComplete-PerformPreRenderComplete()//页面生成前准备} -> SaveState-SaveAllState() ->SaveStateComplete-OnSaveStateComplete(EventArgs.Empty) ->//保存页面和控件数据到ViewState Render-RenderControl(this.CreateHtmlTextWriter(this.Response.Output))

1.BeginRequest  开始处理请求 2.AuthenticateRequest 授权验证请求,获取用户授权信息 3.PostAuthenticateRequest 获取成功 4.AunthorizeRequest 授权,一般来检查用户是否获得权限 5.PostAuthorizeRequest 获得授权 6.ResolveRequestCache 获取页面缓存结果(如果没有则执行) 7.PostResolveRequestCache 已获取缓存 8.PostMapRequestHandler 创建页面对象 9.AcquireRequestState 获取Session -- 先判断当前页面对象是否实现了IRequiresSessionState接口,如果实现了,则从浏览器发来的请求报文头中获得SessionId,并到服务器的 Session池中获得对应的Session对象,最后赋值给 HttpContext的Session属性。 10.PostAcquireRequestState 获得Session 11.PreRequestHandlerExecute 准备执行页面对象 ×执行页面对象的ProcessRequest方法(1.ashx,1.aspx),如果请求的是1.aspx,则会运行页面生命周期 12.PostRequestHandlerExecute 执行完页面对象了 13.ReleaseRequestState 释放请求状态 14.PostReleaseRequestState 已释放请求状态 15.UpdateReuqestCache 更新缓存 16.PostUpdateRequestCache 已更新缓存 17.LogRequest 日志记录 18.PostLogRequest 已完成日志 19.EndRequest 完成

主要内容: 母板页 页面级缓存,控件缓存,简单缓存,带失效时间的简单缓存,文件缓存依赖,进程外Session(2种),微软Ajax核心组件,全局文件,错误页,IIS配置,页面生命周期(事件自动注册机制),HttpApplication的处理过程; 抽象工厂 三层(反射工厂三层),总复习

 

 

 

 

缓存使用是有原则的,不是每个页面都用缓存就好,毕竟它是占用服务器端资源的。所以一般是访问量特别大的就用,而且数据更新不频繁。 aspnet_regsql -S . -E -ed -d ItcastSIM -et -t Classes

asp.net全局配置文件(重写到 jsp可以,但重写到java可以吗?)C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG

转载于:https://www.cnblogs.com/zxp19880910/archive/2012/09/01/2666288.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

post postman 传递数组对象_如何使用postman做接口测试

一,接口测试是什么什么是接口测试,不说广泛的概念,直接电脑打开浏览器,进入开发者工具(F12)随意进入一些网站可以看到下面左侧栏出现了一系列的数据:上面条数据都是一个单独的接口,点击单个接口&#xff0c…

形位公差符号大全_玩转CAD快捷键(大全),一篇文章就够了

CAD快捷键命令大全符号键(CTRL开头)CTRL1 PROPCLOSEOROPEN 对象特性管理器CTRL2或4 ADCENTER 设计中心CTRL3 CTOOLPALETTES 工具选项板CTRL8或QC QuickCalc 快速计算器控制键CTRLA AI_SELALL 全部选择CTRLC或CO/CP COPYCLIP或COpy 复制CTRLD或F6 COORDIN…

Ubuntu 13.10配置root登录

Ubuntu 13.10默认是不允许使用root登录的,要想使用root权限,就必须使用 sudo 命令来执行,很繁琐。 要解决这个问题,需要两个步骤: 1、设置root密码,开启root账号 ubuntu默认的root密码据说是每隔5min就…

三极管驱动(讲的比较好)

http://wenku.baidu.com/view/9861c63310661ed9ad51f350.html转载于:https://www.cnblogs.com/tureno/articles/2668968.html

k近邻算法_K近邻(knn)算法是如何完成分类的?

摘要:K近邻算法是机器学习中的一个非常基础的算法。本文通过自生成数据,通过绘图的方式演示KNN算法的思路,让你不看数学公式就看了解什么是KNN算法。关键词:KNN算法1 生成一个二分类的数据集本文很多内容参考文献[1]。先生成一个两…

登录不上_《盗贼之海》登录不上?还在傻傻等待,快来让我教教你

大家都对这款海盗题材的游戏《盗贼之海》有兴趣了吧,相信大家都入手了它,但是也有很多朋友在入手后遇见了很多问题,别怕,今天干货来了,手把手教你。保证你流畅游戏,快人一步。我看见很多朋友都在问&#xf…

为Ubuntu安装build-essential软件包

Ubuntu缺省情况下,并没有提供C/C的编译环境,因此还需要手动安装。 如果单独安装gcc以及g比较麻烦,幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包。 查看该软件包的依赖关系,可…

__dopostback

转载&#xff1a; 首先要记住这个函数的前面是两个下划线. __doPostBack "_" "_" "doPostBack". 再介绍一下__doPostBack函数的作用。我们先来看一下_doPostBack函数的内容&#xff1a; <div><input type"hidden" name&quo…

苹果X可以升级5G吗_苹果x可以用5g网络吗

随着5G网络的逐渐商用&#xff0c;越来越多5G原型机和量产机都即将推出&#xff0c;那么苹果iPhone X能够支持5G网络吗&#xff1f;下面就为您带来苹果iPhone x可以用5G网络吗的相关介绍&#xff0c;希望以上的介绍能够帮助到您。苹果x可以用5g网络吗1、iPhone X并不支持5G网络…

提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?

RT-Thread今天的快速发展和所取得成绩&#xff0c;离不开所有开发者的持续贡献和社区小伙伴的竭力支持。一、前言今年6月&#xff0c;我在一款智能混合型的FPGA芯片上&#xff0c;完成了RT-Thread的移植&#xff0c;并向RT-Thread提交了一个完整的BSP&#xff0c;后续又根据审查…

asterisk语音信箱voicemail.conf

asterisk 里面配置voicemail首先需要在voicemail.conf里面配置mailbox&#xff0c;mailbox的格式如下配置&#xff1a; voicemail.conf: [testmail] ;context edwin>1234, edwin chen, edwintestmail.com ;edwin:用户名&#xff0c;1234:密码&#xff0c;edwinchen :全名…

WinForm中使用WPF的控件

在WinForm中可以使用WPF中的控件&#xff0c;或者由WPF创建的自定义控件&#xff1b; 步骤1&#xff1a;创建WinForm工程&#xff1b; 步骤2&#xff1a;在WinForm工程的解决方案资源管理器中&#xff0c;在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程&…

docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像

LNMP和LAMP是PHP常用的两种运行环境&#xff0c;L代表Linux&#xff0c;N代表Nginx&#xff0c;A代表Apache&#xff0c;M代表Mysql&#xff0c;P代表PHP。在文章《「PHP编程」安装开发环境太烦&#xff1f;告诉你几个简单方法&#xff0c;分分钟搞定》中我们介绍了&#xff0c…

DP问题之 捞鱼问题

捞鱼问题&#xff1a; http://blog.163.com/zhaohai_1988/blog/static/209510085201271743020919/ 模型总结 http://www.cnblogs.com/10jschen/archive/2012/08/19/2646087.html转载于:https://www.cnblogs.com/applebunny/archive/2012/09/04/2670991.html

asterisk配置会议室meetme.conf

meetme.conf: conf > 1001,123456,654321 使用conf标签开始&#xff0c;1001是会议室编号&#xff0c;123456为会议室密码&#xff0c;654321为管理员密码 extensions.conf: ;;;;;;;;;;;;;;;;会议室;;;;;;;;;;;;;;;;;;;;;; exten > 100,1,Playback,your …

中天数相减获得差_Power BI 了解DAX中LASTDATE和MAX之间的区别

许多刚开始使用DAX的小伙伴在使用LASTDATE搜索某个时间段内的最后日期。或者他们使用NEXTDAY检索给定日期之后的日期。尽管这些函数可以实现它们所承诺的功能&#xff0c;但它们并不打算在简单的表达式中使用。相反&#xff0c;它们是设计用于时间智能计算的表函数。错误地使用…

在CentOS下源码安装 Xen并搭建Windows虚拟机

前言 首先要感谢xing的帮助&#xff0c;在他的指导之下才完成环境的搭建&#xff0c;本文档的部分内容来自他的文档。另外&#xff0c;还要感谢——互联网。 1. 环境介绍 Linux: CentOS 6.3 Xen: Xen 4.1.3 Windows: XP 或 2003 2. 安装CentOS 从官网下载CentOS 6.…

python gif_python 将png图片格式转换生成gif动画

先看知乎上面的一个连接 用Python写过哪些【脑洞大开】的小工具&#xff1f; 这个哥们通过爬气象网站的气象雷达图&#xff0c;生成一个gif的动态图。非常有趣且很实用&#xff0c;那咱也实现下。 我们先实现一个从GIF提取帧的代码 我们这有个gif代码如下&#xff1a; from PIL…

HTTP代理原理以及HTTP隧道技术

通过HTTP协议与代理服务器建立连接&#xff0c;协议信令中包含要连接到的远程主机的IP和端口号&#xff0c;如果有需要身份验证的话还需要加上授权信息&#xff0c;服务器收到信令后首先进行身份验证&#xff0c;通过后便与远程主机建立连接&#xff0c;连接成功之后会返回给客…

goland环境配置_Goland辅助工具goimports和gomodules

1、goimports工具goimports工具是Go官方提供的一种工具&#xff0c;它能够为我们自动格式化 Go 语言代码并对所有引入的包进行管理&#xff0c;包括自动增删依赖的包引用、将依赖包按字母序排序并分类。我们在使用Goland IDE的时候&#xff0c;建议使用goimports工具。它具备包…