Javascript创建动态全局数组
我试图在javascript中创建一个动态全局整数数组。这是我得到的代码:Javascript创建动态全局数组,javascript,html,xmlhttprequest,Javascript,Html,Xmlhttprequest,我试图在javascript中创建一个动态全局整数数组。这是我得到的代码: function LoadStarmap() { Request = new XMLHttpRequest(); Request.onreadystatechange = function() { if( Request.readyState == 4 && Request.status == 200 ) {
function LoadStarmap()
{
Request = new XMLHttpRequest();
Request.onreadystatechange
=
function()
{
if( Request.readyState == 4 && Request.status == 200 )
{
var Data = Request.responseText;
alert( Data );
eval( Data );
}
}
Request.open( "POST", "GetMap", true );
Request.send();
}
(此警报确实显示)
数据如下所示:
var window.StarCords = [ [12,32], [21,32], ... ];
在另一个功能中,我有:
if ( typeof StarCords != 'undefined' )
{
alert( 'got here' );
}
为什么这个警报没有显示出来?(该函数不执行)。
我试着移动各种各样的东西,但我所做的一切都不起作用,我看不出我做错了什么
编辑:
是的,我知道你们在想什么。我没有提到第二个警报正在循环中运行。因此,它也会在调用LoadStarmap()后执行。很抱歉以前没有提到这一点
它在Rendermain函数中重新调整大小:
var intervalIDRender = setInterval( RenderMain, 10);
很抱歉,太晚了。AJAX是异步的……您需要在
onreadystatechange
callbackvar window.StarCords=[12,32],[21,32],…]中使用响应
是无效的JavaScript。问题不在于ajax,而是一切正常@Qantas 94 Heavy,你的意思是这不是如何声明多维数组的?@user513647:变量声明按var x=1进行代码>,而属性分配是使用窗口完成的。y=2代码>。如果您正在执行属性赋值,则不应使用var
。试试你在控制台中写的东西,看看会发生什么。是的,就是这样。这是我第一次使用javascript进行开发,我错过了这一点,将代码更改为“window.starcords=[…”就做到了。