Javascript强制csv文件重新加载(amcharts)

时间:2014-02-21 15:22:05

标签: javascript caching csv amcharts

我在覆盆子pi上使用apache来托管一个页面,以便在内部网络上查看。该页面包含显示来自csv文件的数据的amcharts图。 csv文件每分钟更新一次。有没有办法强制图表更新?

我已经尝试过以下方法: 在html重新加载中使用meta标记 在javascript中使用setTimeout强制重新加载。

第一种方法不起作用,第二种方法适用于某些浏览器(但不适用于IE,这是我需要的工作方式!)

基本上,我需要浏览器不缓存引用的csv文件。任何建议非常感谢!我已经包含了引用下面csv文件的js,并且如果需要可以包括整个页面。

由于

            loadCSV("daily.csv");
        });

        function loadCSV(file) {
            if (window.XMLHttpRequest) {
                // IE7+, Firefox, Chrome, Opera, Safari
                var request = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                var request = new ActiveXObject('Microsoft.XMLHTTP');
            }
            // load
            request.open('GET', file, false);
            request.send();
            parseCSV(request.responseText);
        }

        function parseCSV(data) {
            //replace UNIX new lines
            data = data.replace(/\r\n/g, "\n");
            //replace MAC new lines
            data = data.replace(/\r/g, "\n");
            //split into rows
            var rows = data.split("\n");

            // loop through all rows
            for (var i = 9; i < 19; i++) {
                // this line helps to skip empty rows
                if (rows[i]) {
                    // our columns are separated by comma
                    var column = rows[i].split(",");
                    // column is array now

                    // first item is date
                    var time = column[0];
                    // second item is value of the second column
                    var value = column[1];
                    // third item is in the fourth column
                    var value2 = column[5];

                    var value3 = column[3];

                    // create object which contains all these items:
                    var dataObject = {
                        time: time,
                        actual: value,
                        target: value2,
                        scrap: value3
                    };
                    // add object to chartData array
                    chartData.push(dataObject);

1 个答案:

答案 0 :(得分:2)

尝试在网址末尾添加随机变量。

loadCSV("daily.csv?q="+Math.random());