![]() |
1
7
我一点也不会因为重新从发布时的数据库中加载业务对象来保存用户的更改而生气。 该对象必须来自该回发的某个位置,与快速DB调用(如抓取特定对象)相关的有限开销可能是您的最佳选择。 在回发时将该业务对象恢复到内存中的选项:
|
![]() |
2
1
你有很多用户吗? 如果您的站点是低容量的,那么在会话中存储业务对象可能是可以的。 如果您使用SQL Server来存储会话,那么每次回发都会有效地从数据库加载业务对象。 不过,根据经验,我倾向于使用会话来存储适用于用户会话生命周期的信息。特定于单个Web窗体的业务对象不适合此类别。对于大容量站点,此策略可能也会帮助您更好地扩展。这取决于所有相关的因素。 :) |
![]() |
3
0
在更新之前从数据库重新加载对象可能非常危险。最终可能会丢失任何可能的并发冲突。 例如,如果出现这种情况:
(4)可能会由于并发冲突而失败,即更新正在覆盖计算机2不知道的更改。但是,通过从数据库重新加载,您将忽略这些问题并实现最后一次更新的胜利。 因此,对于这种情况,我认为将原始实体放在会话中(或表单上的隐藏字段中)是绝对正确的,如果您关心并发性的话。 更不用说,很多人不喜欢再次点击数据库进行额外的阅读… |
![]() |
Outnedwaste · 如何选择选项并发布到会话中 7 年前 |
![]() |
Joy · 将变量传递到下一页PHP 7 年前 |
![]() |
John_Cartor · PHP登录(会话问题) 7 年前 |
![]() |
student0495 · 注销逻辑后PHP会话未重新初始化 7 年前 |
![]() |
SANM2009 · 在ASP中访问C#会话变量。网 7 年前 |
![]() |
Sean Mitchell · PHP$_会话在函数中不工作 7 年前 |