1

我想知道是否有任何一般规则来说明何时应该考虑将数据分配给会话数组而不是每次加载新页面时都查询数据库,因为知道结果集中的某些数据已经在前一页上检索过一次.

4

3 回答 3

1

不确定你的问题到底是什么,但如果你知道你会在很多页面中使用数据(比如用户信息/权限等),你应该把它保存在 Session 中,否则你可以查询数据。

于 2012-09-21T18:20:13.970 回答
0

这没有真正的规则。它始终取决于情况和要求。在会话中拥有当前用户信息意味着会话中的数据可能会因为数据库中的编辑而过时。通常,一旦“完成”并加载每个页面请求,几乎所有内容都会写入数据库。在处理多页表单时,部分填充的表单信息通常只要尚未完成就存储在会话中,以防止未完成的数据填满数据库。

如前所述,这完全取决于要求。

于 2012-09-21T18:22:31.240 回答
0

我的经验法则是只在会话中存储与用户会话严格相关的东西,例如他们的唯一 ID。在会话中获取有关正在进行的操作的信息可能会导致一些奇怪的行为。考虑一个具有两步表单的应用程序。打开第一个表单会在 session 中设置一个在第二个表单上读取的值(例如对最后访问的值的引用)。如果我只打开一个选项卡,这很好,但根据用例,打开两个选项卡可能对我有利。我可能会针对值 A 打开表单一个,在另一个选项卡中针对值 B 打开表单一个,然后针对值 A 提交第一个选项卡。根据逻辑,我可能会得到错误的结果,其中值 B 的数据会覆盖值 A 中的数据.

于 2012-09-22T02:58:07.917 回答