簡體   English   中英

一旦執行了后端操作,刷新aspx頁面

[英]Refresh aspx page once a backend operation has been performed

所以我在生產環境中工作,我有一個aspx頁面,我需要該頁面做的是...。

當一個(包裝好的)包裝時,我的標簽增加到下一個數字(因此,在移位開始時,標簽顯示0,執行操作時標簽增加1)

我還需要將此標簽設置為8小時后重設...所以有3種班次模式從6 am-2pm ---- 2pm-10pm-10pm-6pm ....

因此,即使關閉並再次打開網頁,也必須始終使用此時間...

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

讓我們看看我是否理解不正確,首先,您希望標簽的更改取決於某人單擊按鈕,然后,如果要在三個小時(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應該進入數據庫並返回當前標簽。

現在要在幾個小時后重置標簽,我將使用Task Manager進行一些操作 ,然后在托管項目的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);

希望我給了你一些想法,以便你可以做到。如果我看不到代碼或項目樹,那有點困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM