跟踪上次查看的访问者项目

时间:2012-04-07 23:53:54

标签: php javascript jquery mysql codeigniter

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

当前尝试:点击列表后,列表ID将$.post()发送到服务器端PHP,后者插入{使用INSERT... ON DUPLICATE KEY UPDATE} listing_iduser_idview_timestamp放入自动增量为viewed_id的表格中。每次访问者进行新搜索时,都会通过listing_id从MySQL表中检索所有user_id及其.getJSON(),并通过循环,更改这些以前查看的列表的CSS。

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

  1. 每个用户都有一行更好,查看的listing_id是否已序列化?
  2. 我应该使用Cookie(由Codeigniter自动保存到数据库中吗?)?
  3. 在用户查看时,通过AJAX插入新的商家信息。但是,如果包含所有已查看的列表ID的cookie不存在,则仅检索已查看列表的ID列表,否则在将新查看的列表发送到要插入的服务器之后,列表ID也将插入到cookie中。这样,在进行新搜索之后,无需连续查询数据库以查看所查看的列表ID的完整列表。
  4. 注意:对于先前查看的列表的listing_id的AJAX请求数量的估计,普通用户将每20秒进行一次新的搜索。

1 个答案:

答案 0 :(得分:0)

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