我有一个PHP文件,可以自动在目录中搜索png文件。该文件名为update.php。此文件包含带有此图像的数组($ files)。
现在我用json_encode在javascript中获取这个数组,这很好用。 每分钟我的目录中都有一个新图像。但是当我使用autorefresh和settimeout时,那么数组不会更新。
脚本:
function vulArray() {
for (k=0; k<dataArray.length; k++) {
imagesArray[k].setMap(null);
}
// data arrays leeg gooien
dataArray.splice(0,dataArray.length); // data array leeggooien
imagesArray.splice(0,imagesArray.length); // oude array leegmaken
dataArray = <?php echo json_encode($files); ?>; // php array omzetten naar javascript array
var overlayOpts = {opacity:0.0} // Standaard dekking op 0 zetten
// data array vullen met nieuwe data
for (k=0; k<dataArray.length; k++) { // loop starten
var url = dataArray[k]; // images uit de dataarray toewijzen
image = new google.maps.GroundOverlay(url, borders, overlayOpts); // nieuwe laag aanmaken
image.setMap(map); // imagelaag op de map zetten
imagesArray.push(image); // imagelaag in de array pushen
}
refreshImage = setTimeout(function() {
DownloadUrl("update.php", vulArray);
}, 15000); // 5 minuten = 300000
}
DownloadUrl函数:
function DownloadUrl(url, callback) {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function() {
if(request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
该文件每15秒执行一次,这很正常,但由于某种原因,什么都不会更新。我在函数的开头清空数组,但它仍然输出相同的数组。