【问题标题】:A notification of changes system for an ASP.NET web application using SQL Server 2008使用 SQL Server 2008 的 ASP.NET Web 应用程序的更改通知系统
【发布时间】:2012-11-09 02:14:57
【问题描述】:

对于我们的 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 存储上次访问日期可能存在某种技巧,但即使使用这种方法,也需要查询服务器以查看自上次更新以来是否有新文章。

【问题讨论】:

    标签: c# asp.net sql-server web-applications notifications


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 2013-06-09
      • 2015-09-01
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多