2012-11-05 6 views
5

Ich erstellte eine SIMILE-Timeline, die eine XML-Datei als Datenquelle verwendet, die durch eine Methode erstellt wird, wenn ein aspx-Befehl aufgerufen wird. Das Problem ist, dass wenn die XML-Datei aktualisiert wird die Timeline nicht aktualisiert wird und zeigt die Daten der ersten laden. Die Daten werden nur aktualisiert, wenn ich den Browser schließe und die Webanwendung mit der Zeitleiste erneut öffne. Auch wenn ich auf eine andere Seite meiner Webanwendung gehe und dann zu der Seite mit der Timeline zurückkehre, zeigen die Daten Stills gleich. Ich habe bereits bestätigt, dass die XML-Datei erstellt/aktualisiert wird, bevor das Skript, das die Timeline erstellt, aufgerufen wird und ich auch einige Tricks wie ForceLead() erzwinge, eine Response.Redirect() mache und keinen Cache verwende. Meine Funktion onLoad() ist ähnlich wie das Original von simile-widget. Code:So laden Sie Daten in Simile 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> 

Vielen Dank!

+0

nicht sicher, warum Sie die jquery Dokument Last innerhalb einer Funktion wickeln, die bekommt bei Körperbelastung aufgerufen. – Lin

Antwort

0

Der erste Hinweis, den Sie Ihren Javascript-Code onLoad-Funktion wickeln. Versuchen Sie, eine Schaltfläche zum Aktualisieren der Seite mit der Funktion onClick-Ereignis zu erstellen. Wenn Sie ein Upgrade auf einen bestimmten Zeitraum durchführen möchten, können Sie das JavaScript-Timing-Ereignis verwenden.

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

habe ich das Beispiel so einfach wie posible:

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

und dies ist der sintax

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

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. –

+0

Ich gebe das Beispiel so einfach wie möglich: setInterval (function() {alert ("Hallo")}, 3000); und das ist das sintax window.setInterval ("javascript function", Millisekunden); –

+0

Bitte bearbeiten Sie Ihre Antwort, um das Beispiel einzuschließen –