JavaScriptページで多くの問題が発生しています。
基本的に、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に問題があります。
これを修正する方法について何かアイデアはありますか?