【问题标题】:Storing real time data存储实时数据
【发布时间】:2009-12-31 07:58:20
【问题描述】:

我正在建立一个网站,用户可以在其中选择他们在导航菜单中看到的列表项,我的想法是将用户选择的菜单项存储在 cookie 中,因为这将不再需要用户网站上的注册会员,是否可以将实时数据存储在 cookie 中,我将如何做到这一点?有关更多信息,导航选项是从 mysql 结果构建的,然后单击一个链接并将该链接添加到不同的列表中,如果他们再次单击它,它将被删除,我需要从 cookie 中添加/删除这些项目作为用户从那里添加/删除它。

【问题讨论】:

    标签: php ajax codeigniter cookies


    【解决方案1】:

    我只会使用 cookie 来识别用户并将所有菜单选项保存在 MySql 中。

    从 cookie 中获取用户 ID 并在数据库中查询 menu_options 并显示它们。

    无论哪种方式,将数据存储在 cookie 或数据库中,当 cookie 过期时,(有效地)用户也会这样做。此外,人们一直使用 Adware 和 CCleaner 等清理工具删除 cookie。我大约每周做一次。 Cookie = 消失了。

    【讨论】:

    • +1。 cookie 有一个最大大小(我认为大约 4kB),并且为每个请求上下发送它们是低效的。最好将这些数据保存在生成​​和使用的地方,即服务器端,并且只在 cookie 中放置一个唯一 ID 以识别用户。
    【解决方案2】:

    这是个坏主意。

    没有定义浏览器可以存储的 cookie 数量(但大多数浏览器都有硬性限制)。 RFC 2109 建议每个主机至少 20 个 cookie,最小 cookie 大小为 4k。当然,大多数浏览器都遵循后者。

    您还必须复制会话管理的所有功能,而无需拥有服务器端状态。你不希望沿着这条路走下去会导致你的那种痛苦。将会话数据保存在服务器端。

    用户无需“登录”即可进行会话。您只需要在持久 cookie 中为他们分配一个自动身份(如果他们确实登录,则替换它)。并在用户更改配置时将会话映射回更长期的存储。

    C.

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      相关资源
      最近更新 更多