用 console.log 交换警报会导致代码失败
Swapping alert with console.log causes code failure
我不确定以前是否有人问过这个问题,这是我找到的唯一类似项目 was this。
将 alert()
更改为 console.log()
会导致我的代码失败。第 24 行(紧接 xmlhttp.send()
之后)是中断的行,我不知道为什么。
function readFile()
{
var xmlhttp = new XMLHttpRequest();
var totalBudgeted = 0;
var totalSpent = 0;
var fileJSON = {};
var url = 'gamedata.json';
xmlhttp.onreadystatechange = function()
{
if( xmlhttp.readyState == 4 )
{
//alert( 'XMLHttpRequest status code: ' + xmlhttp.status );
// I am commenting this out so that I do not lose points for this assignment. However, FireFox will return a status of 200 when serving a local file.
//if( xmlhttp.status == 200 )
{
fileJSON = JSON.parse( xmlhttp.responseText );
}
}
}
xmlhttp.open( 'GET', url, true );
xmlhttp.send();
alert( fileJSON );
for( var key in fileJSON )
{
if( fileJSON.hasOwnProperty( key ) )
{
alert( key + " -> " + fileJSON[key] );
}
}
// Add up the column totals, and add the 'Total' row to fileJSON.
for( var rowCount in fileJSON )
{
totalBudgeted += fileJSON[rowCount].budgeted;
totalSpent += fileJSON[rowCount].spent;
console.log( '!!!!!!!!!!!!!!!rowCount: ' + rowCount );
}
jsonToHtml( fileJSON );
}
将警报放在那里显然可以让 异步 GET 有足够的时间在处理响应之前完成
没有警报,您的代码甚至在获取 fileJSON 之前就对其进行处理
我不确定以前是否有人问过这个问题,这是我找到的唯一类似项目 was this。
将 alert()
更改为 console.log()
会导致我的代码失败。第 24 行(紧接 xmlhttp.send()
之后)是中断的行,我不知道为什么。
function readFile()
{
var xmlhttp = new XMLHttpRequest();
var totalBudgeted = 0;
var totalSpent = 0;
var fileJSON = {};
var url = 'gamedata.json';
xmlhttp.onreadystatechange = function()
{
if( xmlhttp.readyState == 4 )
{
//alert( 'XMLHttpRequest status code: ' + xmlhttp.status );
// I am commenting this out so that I do not lose points for this assignment. However, FireFox will return a status of 200 when serving a local file.
//if( xmlhttp.status == 200 )
{
fileJSON = JSON.parse( xmlhttp.responseText );
}
}
}
xmlhttp.open( 'GET', url, true );
xmlhttp.send();
alert( fileJSON );
for( var key in fileJSON )
{
if( fileJSON.hasOwnProperty( key ) )
{
alert( key + " -> " + fileJSON[key] );
}
}
// Add up the column totals, and add the 'Total' row to fileJSON.
for( var rowCount in fileJSON )
{
totalBudgeted += fileJSON[rowCount].budgeted;
totalSpent += fileJSON[rowCount].spent;
console.log( '!!!!!!!!!!!!!!!rowCount: ' + rowCount );
}
jsonToHtml( fileJSON );
}
将警报放在那里显然可以让 异步 GET 有足够的时间在处理响应之前完成
没有警报,您的代码甚至在获取 fileJSON 之前就对其进行处理