所以我在生产设置中工作,我有一个aspx页面,我需要页面做的是....
当a(单位打包)将我的标签递增到下一个数字时(因此在移位开始时,标签显示0,并在执行操作时递增1)
我还需要将此标签设置为8小时后重置...所以有3种班次模式,上午6点到下午2点----下午2点 - 晚上10点 - 晚上10点 - 下午6点....
因此,即使网页已关闭并再次打开,也必须始终使用此时间......
我希望这是有道理的......
答案 0 :(得分:0)
让我们看看我是否正确地取消了它,首先你要根据有人点击一个按钮来改变标签,然后你想要在三小时刷新页面(06:00,14: 00,22:00)。
至少对我来说存在问题,您需要在使用标签系统的所有人之间保存当前标签值。
在我的解决方案中,您需要一个数据库来保存它。
在aspx文件的Page_Load
,我会调用一个返回当前标签值的函数,如下所示:
public static string label = 0;
protected void Page_Load(object sender, EventArgs e)
{
label = getValueLabel();
}
函数getValueLabel
应该转到数据库并返回当前标签。
现在,为了在几个小时重置标签,我会对任务管理器执行某些操作,然后将其设置在托管项目的Web服务器上。
它可以是一个简单的控制台应用程序,它将进入数据库并更新当前标签值。
您将此应用程序设置为在06:00,14:00和22:00运行,这将清除标签值。
最后一部分网页在某些时间重置,您可以使用Javascript来完成。
function refreshAt(hours, minutes, seconds) {
var now = new Date();
var then = new Date();
if(now.getHours() > hours ||
(now.getHours() == hours && now.getMinutes() > minutes) ||
now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) {
then.setDate(now.getDate() + 1);
}
then.setHours(hours);
then.setMinutes(minutes);
then.setSeconds(seconds);
var timeout = (then.getTime() - now.getTime());
setTimeout(function() { window.location.reload(true); }, timeout);
}
加载页面时,只需调用该函数三次。
refreshAt(06,0,0);
refreshAt(14,0,0);
refreshAt(22,0,0);
希望我给你一些想法,这样你就可以做到,如果我看不到代码或你的项目树,那就太难了。