2011-04-05 77 views
0

我們有一個計時器進程(一個JQuery插件),它在X分鐘後重定向到登錄頁面,全部通過JavaScript。當計時器達到零時,我想運行一個任務(可以是任何東西;但是,在這種特定情況下,這是一個Web服務調用)。重定向之前運行的任務

所以過程做:

if (zeroedOut) { 
    window.setTimeout(function() { 
    //Run finish-up processes 
    }, 0); 

    window.location = "login.aspx"; 
} 

我遇到的問題是,與完成行動進程不會被調用運行的Web服務。 Web服務調用發生,重定向發生,我沒有看到任何錯誤(我有圍繞setTimeout調用try/catch語句),但沒有WS調用。

有沒有人得到這個成功的工作?我可能會在這裏錯過什麼?

謝謝。

+0

其實,重新閱讀,我有點困惑 - 你是如何(時爲好)進行調用Web服務 - 是它的'//運行...'留言區域內? – jball 2011-04-05 20:27:17

+0

是的,//運行完成進程是ws調用發生的地方,以抽象的形式出現。 – 2011-04-06 15:38:00

+0

我懷疑問題出在實際的Web服務調用中。如果您可以發佈該代碼以及它正在調用的.net框架Web服務方法簽名,我可能可以幫助您對其進行故障排除。 – jball 2011-04-06 18:14:30

回答

1

爲什麼不在setTimeout調用中重定向?否則,重定向將在排隊代碼運行之前發生。

if (zeroedOut) { 
    window.setTimeout(function() { 
    //Run finish-up processes 
    window.location = "login.aspx"; 
    }, 0); 
} 
+0

好的,我確實改變了這種情況,我這樣做,因爲我擔心任務可能會阻止登錄重定向,但這確實是有道理的,我必須完成任何異步完成任務...但是我做到了,但仍然是我沒有得到WS電話......我想我知道爲什麼,但仍然不知道該怎麼做。 – 2011-04-06 16:28:10