作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 asp.net 页面中有一个对象列表。当页面首次在浏览器中加载时,我从数据库中获取数据,使用这些数据创建对象并填充列表。所有这些都是在页面加载事件处理程序内完成的。现在,当页面被发布回页面时,之前的列表就消失了,因为变量都被释放了。
如何缓存该列表,以便在回发此页面时,我的所有对象都可用?
最佳答案
正如 @Eilon 所问,此数据是特定于用户的还是特定于站点的?
如果数据是特定于用户的,您可以使用 session 状态来存储它,但是当用户 session 结束时它将过期,并且在某些情况下仍然可以调用到数据库服务器的往返(例如,如果它由SQL 服务器而不是在进程内,等等)。
如果数据是应用程序范围内的,您还可以使用 Application Cache 。它是站点范围内的,驻留在进程域中,因此可供在该服务器上进行 session 的每个人使用。在多服务器场景中使用此功能时必须特别小心,但它很容易做到。
应该注意的是,如果设置需要时间,应用程序缓存(以及任何其他全局设置)可能会导致第一个用户访问该网站时应用程序加载速度变慢。 IIS7 和 ASP.NET 已尝试通过最近发布的一个模块来解决此问题,该模块会定期唤醒您的应用程序,以确保全局缓存已预先填充或保持事件状态。
关于asp.net - 如何在 ASP.NET 中缓存对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2124651/
我是一名优秀的程序员,十分优秀!