我在使用javascript页面时遇到了很多麻烦。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存在问题。
有关如何解决此问题的任何想法?