2012-11-05 7 views
5

Ho creato una linea temporale SIMILE che utilizza un file XML come origine dati che viene creata da un metodo quando viene richiamato un comando aspx. Il problema è che quando il file XML viene aggiornato, la linea temporale non viene aggiornata e mostra i dati del primo carico. I dati vengono aggiornati solo quando chiudo il browser e apro di nuovo l'applicazione Web con la linea temporale. Anche se vado su un'altra pagina della mia Web Application e poi torno alla pagina con la Timeline, i dati mostrano immagini fisse uguali. Ho già confermato che il file XML viene creato/aggiornato prima che lo script che crea la Timeline venga richiamato e ho anche provato alcuni trucchi come forzare il PageLoad(), fare un Response.Redirect() e non usare la cache. La mia funzione onLoad() è simile all'originale fornita da simile-widget. Codice:Come ricaricare i dati in Analog Timeline

 <head> 
     ... 
     <meta http-equiv="pragma" content="no-cache" /> 
     <META HTTP-EQUIV="Expires" CONTENT="-1"> 
     ... 
     var tl; 
     function onLoad() { 
     $(document).ready(function() { 
      var eventSource1 = new Timeline.DefaultEventSource(0); 
      var theme1 = Timeline.ClassicTheme.create(); 
      theme1.timeline_start = new Date(Date.UTC(2010, 0, 1)); 
      theme1.timeline_stop = new Date(Date.UTC(2014, 0, 1)); 
      var d = theme1.timeline_start; 
      var bandInfos = [ 
      Timeline.createBandInfo({ ... }), 
      Timeline.createBandInfo({ ... }) 
     ]; 
      bandInfos[1].syncWith = 0; 
      bandInfos[1].highlight = true; 

      // create the Timeline 
      tl = Timeline.create(document.getElementById("tl"), bandInfos); 
      var url = '.'; 

      // references in the data 
      tl.loadXML("batch_data.xml", function(xml, url) 
      {eventSource1.loadXML(xml, url); }); 
      tl.finishedEventLoading(); 
     }); 
    } 
    ... 
    </head> 

    <body onload="onLoad();" onresize="onResize();"> 
     <form id="form1" runat="server"> 
       <div id="tl" runat="server"> 
       ... 
       </div> 
     </form> 
    </body> 

Grazie!

+0

Non certo perché si avvolge il carico documento jquery all'interno di una funzione che ottiene invocato sul carico corporeo. – Lin

risposta

0

Il primo indizio si avvolge il codice javascript sulla funzione Load. Prova a creare un pulsante per aggiornare la pagina utilizzando la funzione evento onClick. Se desideri aggiornare a un periodo di tempo puoi utilizzare l'evento di cronometraggio JavaScript.

Here is a link to a documentation of a timing event examples

ho messo l'esempio questo semplice come posible:

setInterval(function(){alert("Hello")},3000); 

e questa è la sintassi

window.setInterval("javascript function",milliseconds); 
+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. –

+0

Metto l'esempio in questo modo più semplice possibile: setInterval (function() {alert ("Hello")}, 3000); e questa è la sintassi window.setInterval ("funzione javascript", millisecondi); –

+0

Modifica la tua risposta per includere l'esempio –