网页缓存的生命周期是多少?

发布网友

我来回答

3个回答

热心网友

缓存的生命周期内的活动

永久不过期,永久不变更的内容,这类东西就不应该放在缓存。缓存是临时的存储,而不是永久的,所以缓存的生命周期是有限的。

它依次可能会经历如下活动:

1.进入缓存。(进入缓存的时候,可能需要指定它以后的过期策略,如果不指定,需要使用系统默认的过期策略)
2.从缓存中获得它,注意,这时候需要处理线程安全的问题。
3.更新缓存,注意,也需要考虑线程安全问题
4.离开缓存,这个可能是外部请求,也可能是缓存根据过期策略把它清理掉。

缓存的过期策略

一般我会问,你所接触的缓存中,碰到过那些缓存过期策略?

最常见的几种过期策略如下:

多长时间没有被请求,则过期,最典型的就是ASP和ASP.net 提供的 Section 功能。其实它就是一个缓存。

依赖于文件变更的缓存,一旦文件被修改,缓存则过期,典型的是 WEB站点的 Web.config ,一旦这个文件变更,不但缓存重起,IIS进程也会进行一次释放工作。

在此基础上,可能看到很多依赖关系的缓存过期策略。比如依赖于数据库的缓存过期策略。

当然,业务逻辑里可能会有更复杂的过期策略,必须CSDN新版积分制论坛中,帖子列表缓存会在列表数据缓存达到600时,把它清理到550条数据。

又比如新积分制论坛帖子的缓存过期,则是没有任何列表引用这个帖子后,则这个帖子过期。

缓存的同步问题

使用缓存,则意味着同样的数据,可能有多份并存。如果你的代码没有考虑某种情况,导致了这两份数据不一致了。这时候就会有问题发生。

解决方法很简单,把你的业务逻辑,代码触发情况都考虑清楚,不要遗留没有触底的地方。

简单的方法会导致你的代码逻辑变得非常复杂。

这也就是有些人,在非必要的时候,建议你不要用缓存的原因。一旦开始使用缓存,你就应该准备增加大量的代码来处理数据同步的问题。

初始化填充缓存数据

有时候在缓存被初始化后,还需要预先填充一些数据到缓存中。这就是缓存数据的初始化操作。

缓存数据的初始化操作需要考虑以下问题:

1.需要多长时间进行初始化,一般如果是站点的话,我们可能在 Global.asa 的 Application_OnStart 中处理这个初始化工作。初始化的一般不能太久,这时候就是考验我们代码优化的能力了。
2.初始化的时候,一般是批量导入数据,而不是我们正常使用的时候,一次处理一个数据。

总结:

本文介绍了我对缓存的一些观点,而没有深入涉及到具体的缓存技术。希望通过本文的讲述,让只会缓存用法不懂缓存思想的人有初步的了解。

热心网友

有很多理由去解释理解ASP.NET页面生命周期是非常重要的,主要是要去理解什么地方放置什么特定的方法,什么时候我们应该设置什么相关的属性。如果去开发自定义的服务器控件,理解生命周期对纠正控件初始化时候的错误,以及使用view-state和后台代码设置属性是非常有用的。(控件事件只与ASP.NET页面相关)

页面生命周期要看它是否是第一次请求,还是回发(本身页面请求),最后决定是否到Web服务器。当一个网页被Web服务器请求时,在回发到web浏览器之前,会经过一系列步骤/事件(如初始化,控件实例化,state的恢复和保存,执行事件处理代码,渲染)。

如果我们正确地使用和操作页面生命周期事件,它对web应用程序开发会是一个非常方便和强大的工具。

热心网友

和你电脑的内存大小有关系

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com