如何实现像#34;当天的提示"动态每天24小时在asp.net

时间:2012-02-24 06:44:05

标签: c# sql

我有一个表“提示”,它有几行。在主页上,我需要将随机单个提示显示为“当天提示”。动态24小时后,我应该再显示24小时的随机提示。如何实现这个概念?

查看以下链接以供参考,每天显示4-5个引号。 sample - click here

我是否应该创建一个新表,以便将“每日提示”删除并每天插入一个新行?或者在服务器上实现缓存技术。

指导我实施的最佳方式。该应用程序将托管在共享主机方案上,因此无法在服务器上运行Windows服务。

2 个答案:

答案 0 :(得分:2)

你可以,例如生成当前日期的SHA-1哈希,然后根据总提示计数的模数计算其余数,这将获得“当天提示”的数量。

例如,

TipOfTheDay[] tips;

var now = DateTime.Now;
var buffer = new byte[] { (byte)(now.Year % 256), (byte)(now.Year / 256), (byte)now.Month, (byte)now.Day };
SHA1 encoder = new SHA1CryptoServiceProvider(); 
var hash = encoder.ComputeHash(data);
int tipNumber = 0;
for(var b in hash) {
    tipNumber += b;
    tipNumber %= tips.Count;
}
return tips[tipNumber];

这将每天返回一个新的(伪随机)提示,并且提示将在白天保持不变。

答案 1 :(得分:0)

如果您使用的是Asp.Net MVC,您可以使用输出缓存attribte并将持续时间设置为24小时。

[OutputCache(Duration=86400)]

对于asp.net,您可以在控件视图

上添加<%@ OutputCache duration="86400" varybyparam="None" %>