Mam eksperyment myślowy. W moim kodzie mam zmienną globalną, powiedzmy var changeMe;
i wykonuję kilka wywołań Ajax.Czy JavaScript Ajax może prowadzić do zakleszczeń?
//call One -- third param is the callback function
ajaxFunction(url1, params,function(data){
changeMe = data;
});
//call Two
ajaxFunction(url2, params,function(data){
changeMe = data;
});
Więc changeMe
wartość będzie zależeć od którego Ajax zadzwonić wykończeń ostatni, co oznacza połączenie, które zakończy ostatni zastąpi wartość.
Co, jeśli oba połączenia kończą się dokładnie na w tym samym czasie, z tym samym znacznikiem czasu?
Ponieważ Javascript jest jednowątkowy, zwykle nie otrzymamy tego problemu, ale może się to zdarzyć w przypadku połączeń setTimeout
i Ajax. Nie wiem, w jaki sposób mogę dokładnie i precyzyjnie odtworzyć ten problem, więc nadal pozostaje to eksperyment myślowy.
W jaki sposób w warunkach wielowątkowych obsługiwany jest zakleszczenie?
wolę odpowiedź jak changeMe
będzie url1
lub url2
i jasne wyjaśnienie sytuacji ..
góry dziękuję
http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649#7575649 –
W JavaScript masz tylko jeden wątek, więc nie będzie nie ma problemu. – erikkallen
@Ishank ... dzięki fr tht..bez nie dostałem prostej ans fr ... – Sarath