Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在启动asp.net输出缓存_Asp.net_Outputcache - Fatal编程技术网

正在启动asp.net输出缓存

正在启动asp.net输出缓存,asp.net,outputcache,Asp.net,Outputcache,是否有方法以编程方式初始化asp.net输出缓存?我已经研究过缓存API,但似乎找不到一个明显的方法来实现这一点。有人试过这样的东西吗?如果是这样,你使用了什么方法?去年我对此进行了一些思考,最后得出结论,这对于这个案例来说并不重要,但如果这对你的网站很重要,你所要做的就是简单地从某个地方调用网页,比如Application\u Start(在所有代码运行之后)事件,但你不应该到此为止 缓存最终将过期,为了避免在任何客户端请求该页面之前,您应该设置某种方式来再次缓存该页面 使outputcach

是否有方法以编程方式初始化asp.net输出缓存?我已经研究过缓存API,但似乎找不到一个明显的方法来实现这一点。有人试过这样的东西吗?如果是这样,你使用了什么方法?

去年我对此进行了一些思考,最后得出结论,这对于这个案例来说并不重要,但如果这对你的网站很重要,你所要做的就是简单地从某个地方调用网页,比如Application\u Start(在所有代码运行之后)事件,但你不应该到此为止

缓存最终将过期,为了避免在任何客户端请求该页面之前,您应该设置某种方式来再次缓存该页面

使outputcache依赖于缓存中的其他对象,并设置过期回调

因此,当缓存对象过期时,页面也会过期,您应该向要重新缓存的页面发出http请求,以此类推

我正在回答这个问题,但是我的努力和我脑海中的问号让我建议不要再继续下去了

更新 这个。如果您愿意,可以使用它,但是如果您需要将outputcache依赖于其他业务对象,那么这可能会非常困难。我可以告诉您,您可以设置一个数据库对象,并依赖于它,然后自己使用某种计时器使其过期


伙计,我写得越久,我发现解决问题的方法和困难就越多!我不能为不值得你宝贵时间的东西写一本书。相信我,这样做的有用性几乎为零。

正如其他人所建议的那样,启动缓存与请求您想要缓存的页面一样简单。当然,如果你这样做,它只会要求HTML,而不是所有的链接资源(CSS,JavaScript,图像…),这是一件好事,以避免浪费带宽

对于许多网站来说,缓存的、消耗最大性能损失的项目对于许多或所有页面来说都是常见的。例如,大型CMS或店面上的导航系统可能会查询数据库并执行一系列渲染工作,然后可以缓存所有页面。在ASP.net中,初始加载的很大一部分是当网站首次访问并加载到内存中时。这两个问题甚至可以通过调用站点上的单个页面来解决,但是没有什么可以阻止您创建URL列表并定期调用每个URL

如果缓存策略设置为20分钟超时,则可能每17-18分钟请求一次每个页面

以下是一些源代码资源,可帮助您入门:


正如我前面提到的,您可以轻松地将这些扩展到“foreach”,通过一个数组或URL列表进行请求。

通过prime,您的意思是希望它提前预加载和缓存所有页面,以便第一个用户不必等待页面创建吗?@Doozer:是的,这正是我想要的。我从未尝试过,以前也没见过。想知道你是否可以在应用程序上触发另一个线程?你开始启动,并用WebRequests或其他东西点击所有页面。如果你愿意在答案中添加一些示例代码,我将奖励你。只是现在我看到了你的评论@DanP。无论是否收到赏金,我都不能给你任何源代码,原因很简单,我没有读过更新。法比奥:谢谢你的更新,有时候“这不是一个好主意”也是一个完全可以接受的答案:)