我有一个使用 Codeigniter 创建的非常类似于 AJAX 的列表网页,我希望注册用户能够区分他们之前查看过的列表。
当前尝试:单击列表时,列表 id 会发送$.post()
到服务器端 PHP,PHP 将 , 插入(使用)自动INSERT... ON DUPLICATE KEY UPDATE
增量的表中。每次访问者进行新搜索时,都会从 MySQL 表中检索所有带有他的内容,并通过一个循环,更改这些先前查看的列表的 CSS。listing_id
user_id
view_timestamp
viewed_id
listing_id
user_id
.getJSON()
我的问题是这种方法是否涉及服务器上的太多工作。
- 每个用户有一个单行会更好,并且
listing_id
查看被序列化吗? - 我应该使用 cookie(由 Codeigniter 自动保存到数据库中吗?)?
- 当用户查看时插入通过 AJAX 查看的新列表。但如果包含所有已查看列表id的cookie不存在,则仅检索一次已查看列表的id,否则在将新查看的列表发送到服务器以插入后,列表id也插入到cookie中。这样在进行新的搜索后,就不需要不断地在数据库中查询已查看的列表 ID 的整个列表。
注意:对于以前查看的列表的列表 ID 的 AJAX 请求数量的估计,平均用户将每 20 秒进行一次新搜索。