2011-04-05 145 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