2013-03-25 2 views
0

Я создал highchart и данные, которые я взял, из файла csv. График работает хорошо и отлично работает. Но моя проблема в том, когда страница обновляется, она не принимает последнее значение из файла csv. Оно все еще отображает старый график. Когда я закрываю браузер и снова открываю диаграмму, отлично работает. Пожалуйста, помогите мне, как сбросить/перерисовать с обновленным значением из csv. Ниже мой код. Эта проблема происходит в IE не в firefox. Если я щелкнул правой кнопкой мыши на отображаемой диаграмме и экспортировал ее в excel, то она покажет обновленное значение, но не будет рисовать диаграмму с обновленным значением.высокие диаграммы от csv не рисовать диаграмму на странице обновления

<html> 
    <head> 

    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <meta http-equiv="Cache-Control" content="no-store" /> 
    <LINK REL="StyleSheet" HREF="../style/default.css" TYPE="text/css" 
MEDIA="screen">   
    <script type="text/javascript" src="../js/jquery.min.js"></script>   
    <script type="text/javascript" src="../js/highcharts.js"></script> 

    <script type="text/javascript"> 
    var chart; 
    $(document).ready(function() {  
       cache:false 
       var options=""; 
     options = { 
      chart: { 
       renderTo: 'container', 
       defaultSeriesType: 'column' 
      }, 
      title: { 
       text: 'Incident Status' 
      }, 
      xAxis: { 
       categories: [] 
      }, 
      yAxis: 

      { 
      allowDecimals:false, tickInterval:15, 
       title: { 
        text: 'Issue Count' 
       } 
      }, 
      series: []   
      }; 

     /* 
     Load the data from the CSV file. This is the contents of the file: 

      Apples,Pears,Oranges,Bananas,Plums 
      John,8,4,6,5 
      Jane,3,4,2,3 
      Joe,86,76,79,77 
      Janet,3,16,13,15 

     */    $.get('../data/incident_status.txt', function(data) { 
      // Split the lines 
      var lines = data.split(';'); 
      $.each(lines, function(lineNo, line) { 
       var items = line.split(','); 

       // header line containes categories 
       if (lineNo == 0) { 
        $.each(items, function(itemNo, item) { 
         if (itemNo > 0) options.xAxis.categories.push(item); 
        }); 
       } 

       // the rest of the lines contain data with their name in the first position 
       else { 
        var series; 

        series= { 
         data: [], 
         pointWidth: 28 

        }; 
        $.each(items, function(itemNo, item) { 
         if (itemNo == 0) { 
          series.name = item; 
         } else { 

          series.data.push(parseFloat(item)); 

         } 
        }); 
       options.series.push(series); 
       } 
      }); 

      chart = new Highcharts.Chart(options); 
      chart.destroy(); 

         chart = new Highcharts.Chart(options);   
     }); 


    });   </script> 

    <body> 
         <div id="wrapper"> 
          <div class="container"> 

         <div id="banner" > 
          <div class="img-border"> <img src="../images/logo.jpg" width="1120" height="111px" alt="" /> </div> 
         </div> 

         <div id="container" style="width: 100%; height: 400px; margin: 0 auto"></div> 

         <?php include('../control/incidentstatus_gen.php');?> 

          </div> 

         </div> 



<body> </html> 
+0

Вы получаете новые данные об обновлении с вашего '$ .get'? –

+0

Нет, если я нажму f5, это не освежает. Если я закрою браузер и снова открою его, то его работа. эта проблема происходит только в IE. – arun

ответ

1

Похоже, что $ .gt получает файл из кеша браузера. Как это сделать, запрос является уникальным, добавляя параметр переменной. JQuery может помочь вам

$.ajaxSetup({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

Или вы можете сделать это сами, добавив параметр времени даты, чтобы сделать запрос уникальным.

$.get(filename,{ "_": $.now() }, function(data){ 
    ... 
}); 
+0

Спасибо, ребята. Проблема исправлена. Это проблема с настройками браузера. Я меняю настройку на загрузку кеша каждый раз, когда страница обновляется. Теперь ее работа – arun

+0

Это нормально для вашего браузера, но не будет работать для других людей, которые не У вас есть правильные настройки браузера. – SteveP

+0

Да, вы правы. Это просто дисплей для пользователя, поэтому никаких проблем. Но если он размещает его в сети, то это проблема. Большие карты должны исправить это. – arun

Смежные вопросы