执行后端操作后刷新 aspx 页



所以我在生产设置中工作,我有一个aspx页面,我需要该页面做的是....

当一个(单位被打包)将我的标签递增到下一个数字时(因此在班次开始时,标签显示 0,并在执行操作时递增 1)

我还需要将此标签设置为在 8 小时后重置...所以有 3 种班次模式 早上 6 点至下午 2 点 ----下午 2 点至晚上 10 点 - 晚上 10 点至下午 6 点......

所以这个时间必须始终在使用中,即使网页被关闭并再次打开......

我希望这是有道理的...

让我们看看我是否正确,首先你想要一个标签,它会根据某人点击按钮而变化,其次你想刷新页面,如果在三个小时(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来完成。

这是@Nick在这个问题中的解决方案。

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);

希望我给了你一些想法,这样你就可以做到了,如果我看不到代码或你的项目树,那就有点困难了。

最新更新