내 자바 스크립트 페이지에 많은 문제가 있습니다.getJSON 동시성 변수 덮어 쓰기?
기본적으로 PHP 페이지에서 데이터를 가져 오는 html/javascript 페이지가 있습니다. 이 작업을 여러 번하고 배열로 밀어 넣은 다음 배열을 표시합니다. 당신이 일을 끝낼 후 다음
이var spawnedNewspaper = [];
var articlesToSpawn = null;
$("#generate").click(function() {
spawnNewspaper();
});
function spawnNewspaper(){
if(itemsToSpawn==null){
articlesToSpawn = 4;
spawnedNewspaper = [];
}
if(itemsToSpawn > spawnedNewspaper.length)
spawnAnItem();
if(itemsToSpawn == spawnedNewspaper.length){
itemsToSpawn = null;
// ... display the results
}
}
function spawnAnItem(nationalDexID, level, generateRandomBerry, generateRandomTMItem, generateRandomItem, knowsRandomTM, imageURL){
$.getJSON("...url.../spawner_json.php?jsoncallback=?" ,
{
dataitename: data
}
, spawnAnArticlePart2
);
}
function spawnAnArticlePart2(data){
//returning from spawnAnItem callback
p = ArticleObject(data.heading, data.date, data.author)
spawnedNewspaper.push(p);
spawnNewspaper();
}
function ArticleObject(heading, date, author){
this.heading = heading;
this.date = date;
this.author = author;
return this;
}
그래서 코드의 개요, 그것은 기사의 정확한 수를 내 배열을 보여 주지만, 나는 그것이 유일한 일 각을 생성하는 것 알고 때 각 기사 정확히 동일합니다 시각.
내 생각에 동시성 문제가 있으며 물건을 덮어 쓰는 중입니다 (push()를 사용하여 이상하게 들릴 수 있습니다). 내 ArticleObject에 문제가 있습니다.
해결 방법에 대한 의견이 있으십니까?