2017-07-19 51 views
0

上下文天冬氨酸計時器滴答事件中斷客戶端的JavaScript

我正在監視服務的Web應用程序。對於每項服務,我都有一個UpdatePanel,狀態和按鈕用於啓動,停止和重新啓動服務。這些都是由Repeaters創建的,並且工作正常。

現在我已經添加了一個asp:Timer作爲所有UpdatePanel的觸發器,因爲我希望狀態響應地更新,所以我需要的間隔相當小。

的問題

我目前沒有與這個兩個問題。主要問題(標題中)是,當單擊按鈕時,我使用的是使用SweetAlert2的javascript來顯示警告並等待用戶輸入。如果在此腳本中計時器發生滴答,它會中斷。警告提示保持不變,但由於後臺中的腳本已被中斷,因此單擊「確認」將不會執行任何操作。

第二個也是更爲次要的問題是,在打勾期間,當UpdatePanel更新時,按鈕在一秒鐘內沒有反應。這不是一個超級大問題,但如果您在打勾期間設法點擊,則必須點擊按鈕兩次,這很煩人。由於我想保持計時器間隔相當小,這實際上經常發生。

我曾經想過做

對於第一個問題,我真的不知道該怎麼辦。我可以在另一個線程上運行定時器嗎?那會甚至像我想要的那樣工作?我應該在JavaScript運行時暫停計時器嗎?

對於第二個問題,我可以做一個解決方法,把按鈕放在他們自己的UpdatePanel什麼的。主要的原因我想在UpdatePanel按鈕是取決於服務的狀態來改變顯示哪些:

// Set button visability and status color 
if (service.Status.Equals(ServiceControllerStatus.Running)) 
{ 
    statusSpan.Attributes.Add("class", "status-run"); 
    btnStart.Visible = false; 
} 
else 
{ 
    statusSpan.Attributes.Add("class", "status-stop"); 
    btnStop.Visible = false; 
    btnRestart.Visible = false; 
} 

我想我主要是尋找解決這一最「正確」的方式「刷新問題「在Web窗體應用程序中。但只要它完成了工作,我會採取任何「黑客」解決方案。

回答

0

同時使解決方法我的第二個問題,我意外地解決了我的第一個問題。

通過將按鈕移動到自己的UpdatePanel,它們不再受計時器的影響並且javascript不會中斷。我猜javascript的問題是,按鈕被重新加載到UpdatePanel中,並且中斷了腳本。

0

使用您的計時器在另一頁, 並把這個頁面上的頁面IFRAME .... 它不會打擾你的JavaScript調用....

相關問題