[英]Exception : “The operation cannot be performed because the message has been changed.”
[英]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來完成。
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.