必要な値を含む JavaScript グローバル変数を作成したいと考えています。XML ファイルからいくつかの値を読み取り、それを使用して Google マップのマップを表示しました。この情報をいくつかの変数に保存し、ユーザーが要求したときに表示します。
私はこのコードを持っています:
var tot_pts = new Array(); //global variable
if (GBrowserIsCompatible()) {
// Display the map, with some controls and set the initial location
...
// A function to create the marker and set up the event window
function createMarker(point,train) {
var marker = new GMarker(point);
return marker;
}
request.open("GET", "example.xml", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = GXml.parse(request.responseText);
//read value on XML
tot_pts.push(new_path);
//show all value on map
for (var i = 0; i < tot_pts.length; i++) {
point= [];
point[0]=tot_pts[i].start;
point[1]=tot_pts[i].end;
map.addOverlay(new GPolyline(point,tot_pts[i].colour,3));
marker = createMarker(tot_pts[i].start,tot_pts[i].train);
map.addOverlay(marker);
marker = createMarker(tot_pts[i].end,tot_pts[i].train);
map.addOverlay(marker);
}
}//end of if request=4
}// end of on ready...
request.send(null);
}// end of compatible browser
このコードの最後の「for ループ」を別の位置に移動すると、配列tot_pts
は空になります。なぜこれが起こるのですか?何らかの方法でコードを改善できますか?