gpt4 book ai didi

asp.net - 从输出缓存中排除动态渲染的用户控制

转载 作者:行者123 更新时间:2023-12-02 21:25:53 25 4
gpt4 key购买 nike

我们有一个网站(实际上是一个应用程序生成器),它在不同的场景中呈现了许多用户控件,

有一天,经理决定在主页中添加输出缓存

好的,一切都很好,请求响应也很快!

但另一方面,这种缓存也有一些麻烦:

假设我们有一个填充一些实体的InsertForm用户控件,以及一个显示实体列表的ListForm用户控件,所以你可以猜测会发生什么,实体填充正确但未显示在列表中,为什么?由于输出缓存。

然后我们必须从缓存中排除这个用户控件,经过一番搜索后我们发现 Donut Caching ,看起来非常好,

我们使用Add dynamically server control to Substitution

大多数用户控件的实现依赖于所有页面生命周期,有些在Init中实现,有些在Load中实现,有些在Render中实现>,所以大多数场景下我们都有一个占位符,我们所做的是:

enter image description here

enter image description here

并在 PreRender 中从 placeHolder 中删除所有控件以防止重复:

enter image description here

在某些情况下我们得到了很好的结果,但在某些实现中我们又遇到了麻烦,所有的 Request 都替换为 HttpContext.Current.Request 以及所有的 Session 已转换为字段,但在某些情况下(例如使用 Wizard),我们仍然会遇到异常:请求在此上下文中不存在。在绑定(bind)事件中,我们又遇到了麻烦,事件无法正确绑定(bind),例如向导的下一个按钮单击事件。

毕竟我填写了我们的方式是错误的,也许这在这种情况下不切实际,

你觉得怎么样?

我们还有其他选择吗?

或者所有这些麻烦都可以解决吗?有什么建议吗?

最佳答案

关于asp.net - 从输出缓存中排除动态渲染的用户控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com