Tôi có một thử nghiệm suy nghĩ. Trong mã của tôi, tôi có một biến toàn cầu nói var changeMe;
và tôi đang thực hiện một số cuộc gọi Ajax.Ajax Javascript có thể dẫn đến deadlocks không?
//call One -- third param is the callback function
ajaxFunction(url1, params,function(data){
changeMe = data;
});
//call Two
ajaxFunction(url2, params,function(data){
changeMe = data;
});
Vì vậy changeMe
giá trị sẽ phụ thuộc vào Ajax gọi kết thúc cuối cùng, có nghĩa là cuộc gọi mà kết thúc cuối cùng sẽ ghi đè lên giá trị.
Điều gì sẽ xảy ra nếu cả hai cuộc gọi kết thúc chính xác tại cùng một lúc, cùng một dấu thời gian?
Vì Javascript là đơn luồng, chúng tôi thường sẽ không gặp phải vấn đề này, nhưng điều này có thể phát sinh trong trường hợp các cuộc gọi setTimeout
và Ajax. Tôi không biết làm thế nào tôi có thể tái tạo vấn đề này với độ chính xác, vì vậy nó vẫn là một thử nghiệm suy nghĩ.
Vậy làm thế nào trong điều kiện đa luồng là một bế tắc được xử lý?
Tôi thích một câu trả lời như changeMe
sẽ url1
hoặc url2
, và giải thích tình hình rõ ràng ..
Cảm ơn trước
http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649#7575649 –
Trong JavaScript, bạn chỉ có một chuỗi duy nhất để có không vấn đề gì. – erikkallen
@Ishank ... thanks fr tht..but tôi đã không nhận được một ans đơn giản fr này ... – Sarath