我们在 ASP.Net 网站主页中使用页面输出缓存,以使其看起来加载更快。缓存时间非常短(5 分钟),因此数据更新可以在短时间内反映给用户。在主页本身,我们有一个名为“投票”的部分,用于为显示的问题投票最佳答案。在此部分中,当用户已经投票时显示投票结果,对于尚未投票的用户,必须显示投票问题。问题是,当已经投票的用户访问了主页时,页面会被缓存并显示投票结果。在这 5 分钟的缓存时间内,当另一个尚未投票的用户访问该页面时,该用户也只显示结果而不是投票问题,因此该用户无法对该投票进行投票。
为了防止这种情况,我们尝试了数据缓存技术,其中缓存主页中所有部分的数据表并呈现页面。这种技术仍然没有页面输出缓存那么快,所以我们的用户并不需要这种技术。与页面输出缓存相比,这两种数据缓存的加载时间要长得多。
我们还尝试了替换缓存方法,即使它缓存了整个页面,也只重新加载页面的一部分。这种缓存方法中最重要的问题是我们只能在那个替换控件中使用 HTML 控件。我们已经尝试仅使用 HTML 控件创建投票部分,但我们仍然遇到页面其他部分中使用的 AJAX 更新面板的问题。
请指导我解决此问题。必须为每个用户单独重新加载页面的一部分(轮询部分),而其他部分必须从缓存中传递。这应该在不影响页面性能的情况下发生。