我主要用 PHP 编写一个页面,我想知道是否最好从数据库中获取一堆关于用户的非敏感信息并将其放入 cookie 中以便更快地加载未来页面,或者我应该有每个页面访问数据库几次?
页面加载速度不是特别慢,但是 sql 查询和 PHP 填充页面时会有轻微的明显延迟。它可能只是我的服务器,但我想在我担心之前确保我的代码是有效的。
我主要用 PHP 编写一个页面,我想知道是否最好从数据库中获取一堆关于用户的非敏感信息并将其放入 cookie 中以便更快地加载未来页面,或者我应该有每个页面访问数据库几次?
页面加载速度不是特别慢,但是 sql 查询和 PHP 填充页面时会有轻微的明显延迟。它可能只是我的服务器,但我想在我担心之前确保我的代码是有效的。
您始终需要记住,为域设置的每个 cookie 都将由浏览器与对该域的每个请求一起提交。
因此,您应该避免在 cookie 中存储大量数据,因为这会对响应时间产生负面影响,尤其是对于上游带宽较低的客户端。
不确定查询是什么,但您可以通过在 cookie 中存储 UUID(一些用户特定的 ID 号)然后使用该字段从表中获取数据(理想情况下是索引字段)来执行 50/50 解决方案。
这本质上是 PHP 会话 ($_SESSION) 所做的,但只是为您提供了另一种选择,即数据存储或用户应该持有数据的时间长度,而不必弄乱所有会话配置选项或创建自定义会话处理程序。
将数据放入 cookie 意味着用户可以更改它(这对您来说似乎不是问题),或者用户可以删除它,也许是偶然的,需要以某种方式再次填充数据。
为什么不把它放在会话中?它在服务器端进行管理,由任何体面的服务器正确缓存,如果您创建新会话,您可以从数据库重新加载数据。