在 javascript 程序中,我试图从文件中的数据填充全局 3 属性数组对象。该程序没有成功运行,所以我尝试调试,但发现它在使用 Firefox 的内部调试器运行时确实有效。所以尝试使用 Firebug,但 Firebug 冻结了。回到简单的“警报”插入,我发现添加“警报”会产生成功的运行,但会出现令人费解的“警报”消息 - 数组长度在数组创建子例程内似乎没问题,但在例程之外为零。大概我做错了什么,但mm对这种行为感到困惑,所以转向这里寻求帮助(作为第一次用户)。FWIW JQuery 被用来读取数据。以下是该程序的要点:
var nodedata = new Array();
nodedata = [];
// use routine to fill array
requestNodeData();
alert('POST requestNodeData nodedata.length=' + nodedata.length);
// create markers
for (var index in nodedata) addMarker(nodedata[index], index);
alert('POST index Loop nodedata.length=' + nodedata.length);
...
function requestNodeData() {
var formData = $('#form').serialize();
$.post('/cgi-bin/get_nodedata.cgi', formData, processNodeData, 'text').error(processNodeDataError);
return false; // this prevents form button submission
}
function processNodeData(data) {
var strings = new Array(3);
datalines = data.split(/\n/);
for (var i = 0; i < (datalines.length); i++) {
strings = datalines[i].split(/,/);
nodedata[i] = {
'lat': strings[0],
'lng': strings[1],
'name': strings[2]
};
}
alert('END OF requestNodeData nodedata.length=' + nodedata.length);
}
注意:“END OF requestNodeData”警报总是给出预期的数组大小添加“POST requestNodeData”警报使程序成功运行!但数组大小是“0”,而不是预期的数组大小!?如果省略“POST requestNodeData”警报,则“POST index Loop”给出 0,但在包含该警报时给出预期的数组大小