Asp.net mvc 使用输出缓存以编程方式同时缓存一组页面
我有一个MVC4网站,我正在使用OutputCache缓存一个视图的结果,该视图显示多个页面的排名结果。缓存的输出因页面参数而异。排名是时间的函数,因此任何给定页面的结果都可能不同步,这取决于它们被缓存的时间,而我使用的是无限滚动机制,如果结果被推到下一页,则可以显示重复的结果,这一事实加剧了这种情况 这个问题的理想解决方案是一次性缓存一些合理数量的页面。这需要能够检查缓存输出是否过期,如果缓存结果过期,则重新生成缓存结果,然后返回缓存响应。这可能吗 我还应该注意,我正在与Azure输出缓存提供程序一起使用OutputCaching,并且我有一个专用的缓存角色(注意:不是共享缓存服务) 任何帮助都将不胜感激 这需要能够检查缓存的输出是否正确 过期,如果缓存结果已过期,则重新生成缓存结果,然后 返回缓存的响应。这可能吗 这正是OutputCaching的工作原理-请求页面,如果页面存在于缓存中且未过期,则从缓存中检索它,否则,呈现页面并更新缓存 如果数据确实是动态的,那么缓存输出可能会导致更多的工作/问题,而没有实现任何性能提升(KISS适用于此处!如果可以避免问题,请不要为问题创建解决方案) 然而,如您所述(如果确实需要的话)构建解决方案可以通过Azure队列和工作者角色来完成。在添加/更新评级时,让评级引擎在队列中填充一个值。然后,让工作者角色每秒(例如)轮询队列以获取值。如果找到值,则会让工作者角色对缓存的页面执行web请求。如果输出缓存已过期,这将更新输出缓存。但是,您仍然受到缓存过期的限制。除非你做了类似的事情: HttpResponse.RemoveOutputCacheItem()可能就是您想要的方法 使用。如果您能找出缓存操作的名称, 您可以只删除特定操作(尝试设置断点或 将缓存项的所有名称转储到屏幕)Asp.net mvc 使用输出缓存以编程方式同时缓存一组页面,asp.net-mvc,caching,azure,outputcache,Asp.net Mvc,Caching,Azure,Outputcache,我有一个MVC4网站,我正在使用OutputCache缓存一个视图的结果,该视图显示多个页面的排名结果。缓存的输出因页面参数而异。排名是时间的函数,因此任何给定页面的结果都可能不同步,这取决于它们被缓存的时间,而我使用的是无限滚动机制,如果结果被推到下一页,则可以显示重复的结果,这一事实加剧了这种情况 这个问题的理想解决方案是一次性缓存一些合理数量的页面。这需要能够检查缓存输出是否过期,如果缓存结果过期,则重新生成缓存结果,然后返回缓存响应。这可能吗 我还应该注意,我正在与Azure输出缓存提供
我知道这就是OutputCaching的方式,但这都是在幕后完成的。就像我说的,为了翻页,比如说,10页没有重复结果的结果,所有10页都必须使用相同的结果集同时生成。