2 ~ 5 개의 적절한 크기의 데이터 파일이로드 된 후에 웹 페이지에서 함수를 자주로드해야합니다. 최대 3MB의 데이터가 최대 5 개의 파일로 분할된다고 가정 해 보겠습니다.N ajax 호출을위한 자바 스크립트 기능
var data1, data2;
$(document).ajaxStop(function() {
$(this).unbind("ajaxStop"); //prevent running again when other calls finish
initialize();
});
$.ajax({
url: url_to_data_1,
success: function (d) {
data1 = d;
}
});
$.ajax({
url: url_to_data_2,
success: function (d) {
data2 = d;
}
});
function initialize() { /* do something with data1 and data2 */ }
하지만 난 지쳤어 :
나는 그들이 모든로드 된 후 지금처럼 만드는 모든 AJAX가 동시에 호출하고, 초기화() 함수를로드하여로드 시간을 최적화하기 위해 시도 모든 시간이 붙여 넣기, 그래서 기능과 같이합니다 : ajaxStop 잡을 수 있도록 아약스 호출이 존재하지 않기 때문에 이것은 물론 작동하지 않습니다
function multi_Ajax(urls, callback) {
var data = {};
//call init() after both the list of prayers and the word concordance index load
$(document).ajaxStop(function() {
$(this).unbind("ajaxStop"); //prevent running again when other calls finish
callback(data);
});
for (var c = 0; c < urls.length; c += 1) {
//data files
$.ajax({
url: urls[c],
dataType: "json",
success: function (d) {
data[urls[c]] = d; console.log("Loaded " + urls[c]);
}
});
}
}
. 그러나 ajaxStop이 훨씬 더 잘 작동하는 방법을 이해하지 못합니다. 고맙습니다!
당신이'$ .when()'을 찾고 있다고 생각합니다. – Barmar
"ajaxStop을 잡기 위해 ajax 호출이 존재하지 않는다는 것을 무엇을 의미합니까?" –
감사합니다 - 동적 입력을받을 수 있습니까? 루프에 의해 채워지는 무언가가 있습니까? EP - Ajax 호출이 루프에서 작성되면 AjaxStop이 찾을 수 있습니까? –