1

我有一个使用 Codeigniter 创建的非常类似于 AJAX 的列表网页,我希望注册用户能够区分他们之前查看过的列表。

当前尝试:单击列表时,列表 id 会发送$.post()到服务器端 PHP,PHP 将 , 插入(使用)自动INSERT... ON DUPLICATE KEY UPDATE增量的表中。每次访问者进行新搜索时,都会从 MySQL 表中检索所有带有他的内容,并通过一个循环,更改这些先前查看的列表的 CSS。listing_iduser_idview_timestampviewed_idlisting_iduser_id.getJSON()

我的问题是这种方法是否涉及服务器上的太多工作。

  1. 每个用户有一个单行会更好,并且listing_id查看被序列化吗?
  2. 我应该使用 cookie(由 Codeigniter 自动保存到数据库中吗?)?
  3. 当用户查看时插入通过 AJAX 查看的新列表。但如果包含所有已查看列表id的cookie不存在,则仅检索一次已查看列表的id,否则在将新查看的列表发送到服务器以插入后,列表id也插入到cookie中。这样在进行新的搜索后,就不需要不断地在数据库中查询已查看的列表 ID 的整个列表。

注意:对于以前查看的列表的列表 ID 的 AJAX 请求数量的估计,平均用户将每 20 秒进行一次新搜索。

4

1 回答 1

0

对于这种功能,我不会自发地涉及数据库,而是查看客户端解决方案,例如使用 localStorage 存储 Json 数据,或者如果您想要更广泛的浏览器支持(或需要从您的 php 代码中存储它),也可以使用 cookie并且不能从javascript中做到这一点)。如果您必须将此信息存储在您的数据库中,我仍然会寻找尽可能多地在客户端缓存信息的解决方案,就像您在第 3 点中描述的那样。

于 2012-04-08T10:06:08.637 回答