php - 确保相册内容新鲜

标签 php mysql

我在一个网站上工作,用户可以在该网站上提交照片,这些照片可以在页面上一张一张地查看。

还有另一个页面,您可以在其中看到多张照片的较小版本。

当用户单击这些较小的照片中的任何一张时,他们会进入大版本页面,按“下一步”会将他们带到该类别中的另一张照片。

我非常希望较新的照片优先于较旧的照片。

我的想法是,当用户点击下一步时,他会被带到最新的照片,然后从那里移动下一步将使用户向后浏览所有新照片。

问题是,当用户离开单个照片页面,返回到多个缩略图页面,然后点击那里的另一张照片时,用户将在点击下一步时开始看到相同的新照片。

我想确保用户不会看到同一张照片。我考虑过为每个访问者放置一个唯一的 cookie,然后当用户访问照片时,我将其记录在访问表中。当从数据库中为“下一步”选择新照片时,我确保用户之前没有访问过该照片。

我(过早地)担心这会对数据库负载产生什么影响。

关于执行此操作的最佳方法或替代方法有什么想法吗?

编辑:

可能不够清楚,很短的版本:我想确保在循环浏览图片时没有重复的内容。最好是延长时间,而不仅仅是一个 session 。

编辑 2:

这就是我目前正在考虑做的事情。看起来不错?我把它放在一起(字面意思是,电源在 5 分钟内关闭以进行维修,我明天必须回来,希望这是有道理的)。

alt text
(来源:googlepages.com)

最佳答案

当“图像查看器”关闭时,您可以简单地存储开始 ID(用户看到的第一张照片)和用户最后看到的照片的 ID。

当用户回来时,您可以简单地检查是否有更新的照片被添加,如果是,则首先显示这些照片,直到您到达用户首先看到的图像的 ID(存储在 cookie 或数据库中)。然后直接跳到用户最后看到的图像的 ID,然后从那里继续。

这不会在 cookies/session 或数据库上产生巨大的开销.. 而且它基本上是万无一失的.. 至少相对准确,直到你必须解决问题的某个点;如果用户停在一系列照片的中间怎么办?显然,您可以存储一系列 ID。

像这样的大量解决方案。想想'聪明'。并考虑对精度的需求。如果您将每张访问过的照片都记录在数据库中,您将准确地记住用户看到的内容,但性能很可能会下降(我可以向您保证,随着时间的推移会急剧下降)。如果您喜欢性能,而且我相信您的用户会喜欢,那么我建议您看一下可能不太准确(如上所述)但尊重性能的解决方案。

关于php - 确保相册内容新鲜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774830/

相关文章:

mysql - 根据mysql中的加权标签对文章进行排序

php - 使用PHP的“Notice: Undefined variable”,“Notice: Undefined index”和“Notice: Undefined offset”

javascript - 使用 AJAX 在 Bootstrap Modal 上调用 PHP 函数

php - 如果 NOT IN 中的值为空,则 mysql 会抛出错误

javascript - 如何在同一页面上处理表单(前端和后端)?

javascript - 将 Mysql 结果传递给 JSON

php - 从 mysql_connect 切换到 PDO : mysql_num_rows() expects parameter 1 to be resource

Mysql 触发器不工作。为什么?

php - Ion 编码不适用于 php post

php - Mysql DB 结构(架构)建议