Nhìn vào mã nguồn jQuery, đây là tất cả $.getJSON
làm:
getJSON: function(url, data, callback) {
return jQuery.get(url, data, callback, "json");
},
Và đây là tất cả $.get
làm:
get: function(url, data, callback, type) {
// shift arguments if data argument was omitted
if (jQuery.isFunction(data)) {
callback = data;
data = null;
}
return jQuery.ajax({
type: "GET",
url: url,
data: data,
success: callback,
dataType: type
});
},
Không ma thuật đen đó. Vì bạn cần để tùy chỉnh những thứ khác hơn là $.getJSON
chức năng cơ bản, bạn chỉ có thể sử dụng chức năng ở mức độ thấp $.ajax
và vượt qua async option như sai:
$.ajax({
type: 'GET',
url: 'whatever',
dataType: 'json',
success: function() { },
data: {},
async: false
});
Nguồn
2009-06-01 06:06:48
Và tại sao bạn không thể sử dụng gọi lại để trả lại/nhận giá trị? Ngoài ra, hãy thử tránh các hành vi đồng bộ càng nhiều càng tốt, vì nó sẽ khóa giao diện người dùng trình duyệt trong quá trình xử lý của nó. – PatrikAkerstrand
Mã gọi không hỗ trợ gọi lại. – tpower