0

对于我们的 Intranet 站点,我们希望开始在按钮上包含视觉标志,这些标志指向用户尚未查看的内容已更改的部分。

为了实现这一点,我所能想到的就是,在每个 Page_Load 上,进行查询以将用户的最后访问日期与该部分的内容进行比较,以查看自上次访问以来是否添加了任何新内容。

例如,我们有一个“新闻”页面。URL 是 news.aspx,到达该页面的按钮显示“新闻”。我们的 News 表有一个 DateCreated 列,它指示文章的发布时间。所以首先我们得到用户最后一次访问 news.aspx 的日期时间。我们有一个名为 PageAccessLogs 的表,它只有三个简单的列:用户名、url 和访问时间。首先,我们将查询 PageAccessLogs 以找出该用户上次访问 news.aspx 的时间。假设结果是 2012-11-06 10:34:25。然后找出在 2012-11-06 10:34:25 之后发布了多少文章。如果从那时到现在有 1 篇文章,请在“新闻”按钮上方显示一个红色的“1”。如果从那时到现在有 2 篇文章,请在“新闻”按钮上方显示一个红色的“2”。等等。

我还没有实现它,但我很确定上面的方法会起作用。以我有限的知识,我想不出任何其他方法来实现我的目标,除了只是为每个用户在每个 Page_Load 上运行该查询。这是常用的方法吗?有没有一种方法可以实现相同的目标,而不必在每个 Page_Load 上查询服务器?

我想也许有某种技巧可以使用 cookie 来存储上次访问日期,但即使使用这种方法,也需要查询服务器以查看自上次更新以来是否有新文章。

4

1 回答 1

0

为什么不考虑额外的列“已见”默认为 false,因为加载新内容时假定它是不可见的,并且当用户阅读它/显示它时,该列的更新已完成以将其标记为已读。这样就没有混乱的时间戳问题。还消除了对重新计算已读/未读进行任何具体操作的需要

于 2012-11-09T02:52:06.773 回答