我有一个表“提示”,它有几行。在主页上,我需要将随机单个提示显示为“当天提示”。动态24小时后,我应该再显示24小时的随机提示。如何实现这个概念?
查看以下链接以供参考,每天显示4-5个引号。 sample - click here
我是否应该创建一个新表,以便将“每日提示”删除并每天插入一个新行?或者在服务器上实现缓存技术。
指导我实施的最佳方式。该应用程序将托管在共享主机方案上,因此无法在服务器上运行Windows服务。
答案 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" %>