我有一个思想实验。在我的代码中,我有一个全局变量,说var changeMe;
,我正在做几个Ajax调用。Javascript Ajax可能导致死锁吗?
//call One -- third param is the callback function
ajaxFunction(url1, params,function(data){
changeMe = data;
});
//call Two
ajaxFunction(url2, params,function(data){
changeMe = data;
});
所以changeMe
值将取决于Ajax调用完成最后,这意味着最后结束将覆盖值呼叫。
如果两次通话都完全在的同一时间完成,同一时间戳怎么办?
由于Javascript是单线程的,我们通常不会遇到这个问题,但这可能会出现在setTimeout
和Ajax调用的情况下。我不知道如何能够精确地复制这个问题,所以它仍然是一个思想实验。
那么在多线程条件下如何处理死锁?
我更喜欢changeMe
的答案将是url1
或url2
,以及明确的情况说明..
在此先感谢
http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649#7575649 – 2013-05-09 08:58:35
在JavaScript中,你只有一个线程,所以会有没问题。 – erikkallen 2013-05-09 09:04:31
@Ishank ...感谢fr tht ..但我没有得到一个简单的答案fr这个... – Sarath 2013-05-09 09:59:49