📅  最后修改于: 2020-11-21 05:35:26             🧑  作者: Mango
当有人从您的站点请求页面时,Web服务器必须做一些工作才能完成请求。因此,服务器可能必须执行需要很长时间的任务,例如从数据库中检索数据。
在某些情况下,如果您的站点流量很大,则导致Web服务器执行复杂或缓慢任务的一系列单独请求可能会加重很多工作。
这最终会影响网站的性能。
改善网站性能的一种方法是缓存数据。
当您的网站反复要求提供相同的信息,并且无需为每个人修改信息,并且该信息也不是时间敏感的,因此,无需重新获取或重新计算它,就可以一次获取数据,然后存储结果。
下次请求该信息时,您只需将其从缓存中取出即可。
让我们看一个简单的示例,在该示例中,我们将在首次加载页面时缓存数据。因此,让我们使用WebCache.cshtml名称创建一个新的CSHTML文件,并替换以下代码。
@{
var cacheItemKey = "CachedTime";
var cacheHit = true;
var time = WebCache.Get(cacheItemKey);
if (time == null){
cacheHit = false;
}
if (cacheHit == false){
time = @DateTime.Now;
WebCache.Set(cacheItemKey, time, 1, false);
}
}
WebCache Helper Sample
@if (cacheHit){
@:Found the time data in the cache.
} else {
@:Did not find the time data in the cache.
}
This page was cached at @time.
正如您在上面的代码中看到的那样,当我们缓存数据时,我们将使用在整个网站上唯一的名称将其放入缓存中。在这种情况下,我们将使用一个名为CachedTime的缓存条目。这是cacheItemKey 。
该代码首先读取CachedTime缓存条目。如果返回一个值,则代码仅将time变量的值设置为缓存数据。
但是,如果缓存条目不存在,则代码会设置时间值,将其添加到缓存中,并将过期值设置为一分钟。
WebCache.Set(cacheItemKey,time,1,false)显示如何将当前时间值添加到缓存并将其到期时间设置为1分钟。
让我们运行该应用程序并指定以下URL- http:// localhost:50180 / WebCache.cshtml ,您将看到以下页面。
现在,让我们在一分钟内刷新页面,您会看到相同的时间,这是因为时间是从缓存中加载的。