使用settimeout和json_encode更新javascript数组

时间:2015-02-11 09:44:52

标签: javascript php arrays json

我有一个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秒执行一次,这很正常,但由于某种原因,什么都不会更新。我在函数的开头清空数组,但它仍然输出相同的数组。

0 个答案:

没有答案