2012-07-05 77 views
3

我正在开发一个针对许多客户端动态定制的PHP通用应用程序。在会话中保存对象是否是一种很好的做法?

我有类client,其中我加载客户端的样式和偏好。

我的问题是:

它是一个很好的做法,以保存对象保存在session? (我认为这是最好的解决方案,而不是在每个页面中创建对象,这将需要大量的mysql查询。

回答

3

在处理会话时,您需要考虑几件事情。

  1. 您不应该在会话中存储不同的大值。 我认为这不是一个问题在你的情况下,因为偏好足够小。

  2. 将对象存储在会话中时。您可能无法获得实时更新。例如,可以说同一用户使用两个独立的浏览器和/或机器登录并将偏好修改为一个。在这种情况下,其他人将不具有更新的定制。它不是一个大问题,但取决于您的要求。

我在这里没有看到任何其他问题。实际上它是有效的,很好的解决方案,可以在会话中存储较小的值并避免数据库查询

+0

客户端信息永远不会改变,并且不是每个客户端的许多数据。谢谢! – Tony

0

如果它不会改变,并且会导致不断调用MySQL查询一遍又一遍然后,这是一个好主意。

的MySQL查询(和功能一般)是内存/ CPU密集型,并能影响的PHP页面加载速度,使工作少,你是导致它做的事越好越好

如果返回值会不断变化,那会更好不是,但存储您可以在会话中的值。

+0

客户端信息永远不会改变,并且不是每个客户端的许多数据。我不能想到另一种选择。谢谢! – Tony

0

我认为会话将​​在客户端关闭浏览器时终止。 如果您将其存储在cookie(加载客户端)中?这对安全性不利。

在会话中存储迷你数据(加载服务器)。这意味着您正在服务器上使用某些内存。 当你有很多客户时会发生什么?

因此,数据库连接应该在每个页面的进程结束时销毁。 不要担心使用它。

相关问题