Tôi đã một đoạn mã jQuery mà gọi vài getJSON()
cuộc gọi liên tiếp nhanh chóng:jQuery phạm vi hoặc chủng tộc điều kiện trong AJAX/getJSON
var table = $("table#output");
for (var i in items) {
var thisItem = items[i];
$.getJSON("myService", { "itemID": thisItem }, function(json) {
var str = "<tr>";
str += "<td>" + thisItem + "</td>";
str += "<td>" + json.someMember + "</td>";
str += "</tr>";
table.append(str);
});
}
Khi tôi chạy này chống lại một máy chủ lag, bảng được dân cư với giá trị json.someMember
được mong đợi (chúng không đúng thứ tự), nhưng cột thisItem
được điền bằng hỗn hợp giá trị không thể đoán trước từ các lần lặp khác nhau.
Tôi giả định đây là điều cần làm với phạm vi và thời gian - chức năng gọi lại đang đọc thisItem
từ phạm vi rộng hơn? Tôi có đúng không? Làm thế nào để ngăn chặn điều này?
Giải pháp thay thế hiện tại của tôi là dành cho dịch vụ JSON trả lại bản sao các dữ liệu đầu vào - điều không hài lòng khi nói ít nhất.
Cảm ơn bạn đã đặt câu hỏi này. Tôi cũng đã có một số vấn đề (tôi đã nhận thức được trả về hàm không đồng bộ nhưng không chắc chắn làm thế nào để báo hiệu getJSON gọi lại vị trí nào để đặt một giá trị trả về). –