정보를 가져 와서 while/for 루프가 혼합 된 데이터베이스로 업데이트하는 javascript/jquery 코드가 있습니다. 가져 오는 동안 진행중인 작업 진행 로그를 보여주는 div가 있습니다. 파이어 폭스에서는 스크립트가 실행되는 동안 div가 동시에 업데이트됩니다. Chrome에서는 전체 루프를 실행하여 로그를 보관하고 스크립트 실행이 끝날 때까지 로그 만 출력합니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?Google 크롬에서 Javascript 출력이 다시 표시되는 이유는 무엇입니까?
$(document).ready(function() {
add_text("test");
var array_length = num_sets;
for(var i = 0; i < array_length; i = i + 1) {
var setId = sets[i]['id'];
var setName = sets[i]['name'];
var setLinkName = sets[i]['link'];
var setNumCards = sets[i]['num_cards'];
add_text("Beginning to fetch set \"" + setName + "\"");
add_text("Found " + setNumCards + " total cards.");
while(ii < setNumCards) {
var card_name = sets[i]['cards'][ii]['name'];
var card_link = sets[i]['cards'][ii]['link'];
add_text("Fetching card " + sets[i]['cards'][ii]['name']);
fetch_card(sets[i]['cards'][ii]['link'], setId);
}
}
});
add_text 기능 : 여기
내 코드입니다function add_text(text) {
$("#status_text").append("<br />" + text);
}
fetch_card 기능 :
function fetch_card(card_link, set_id)
{
$.ajax({
url: "fetch_card.php?link=" + card_link + "&set_id=" + set_id,
context: document.body,
async: false,
success: function(){
ii = ii + 1;
}
});
}
'add_text()'에 대한 코드는 무엇인가 : 당신이 실제로 반환 아약스 정보와 함께 아무것도하지만, 아마 그 당신이 여기에 포함 된 것이 아닙니다있어 어떻게 나에게 분명하지 않다? – LordZardeck
function add_text (text) { $ ("# status_text"). append ("
"+ text); } – user1218595
코드가 동기식 인 경우 (일반적으로 브라우저는 현재 동기 코드가 완료 될 때까지 다시 그리지 않습니다.) 그것이 동기화되면, 파이어 폭스가 끝나기 전에 다시 그려진다는 것에 놀랐다. –