我有一个表"Tips“,它有几行。在主页上,我需要显示一个随机的单一提示作为“当日提示”。24小时后,我应该在另一个24小时内显示一个随机的提示。如何实现这一概念?
看看下面的链接作为参考,每天显示4-5个报价。sample - click here
我是否应该创建一个新的表格来拥有“每日提示”,在那里它每天都会被删除并插入一个新的行?或者在服务器上实现高速缓存技术。
指导我一种最佳的实现方式。该应用程序将在共享主机计划中托管,因此无法在服务器上运行windows服务。
发布于 2012-02-24 14:48:31
例如,你可以生成当前日期的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];这将每天返回一个新的(伪随机)提示,并且该提示在一天中将保持不变。
发布于 2012-02-24 14:58:40
如果您使用的是Asp.Net MVC,您可以使用输出缓存属性,并将持续时间设置为24小时。
[OutputCache(Duration=86400)]对于asp.net,您可以在控件视图上添加<%@ OutputCache duration="86400" varybyparam="None" %>
https://stackoverflow.com/questions/9426546
复制相似问题