2012-11-05 8 views
5

aspxコマンドが呼び出されたときにメソッドによって作成されるデータソースとしてXMLファイルを使用するSIMILEタイムラインを作成しました。 問題は、XMLファイルが更新されるとタイムラインが更新されず、最初の読み込みのデータが表示されることです。データは、ブラウザを閉じてタイムラインでWebアプリケーションを再び開いたときにのみリフレッシュされます。私が自分のWebアプリケーションの別のページに行って、タイムラインのあるページに戻ってきたとしても、データは同じことが分かりました。 タイムラインを作成するスクリプトが呼び出される前に、XMLファイルが作成/更新されていることを確認しました。また、PageLoad()、Response.Redirect()、キャッシュを使用しないなどのトリックを試しました。 私の関数onLoad()は、simile-widgetが提供するオリジナルと似ています。コード:Simileタイムラインでデータをリロードする方法

 <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> 

ありがとう!

+0

わからないですボディロード時に呼び出されます。 – Lin

答えて

0

javascriptコードをonLoad関数でラップする最初の手がかりです。 function onClickイベントを使用してページを更新するボタンを作成してみてください。一定期間にアップグレードしたい場合は、JavaScriptタイミングイベントを使用できます。

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

私がとりうるように、これは単純な例を置く:

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

、あなたが取得する関数内jqueryのドキュメントの負荷を包むなぜこれがsintax

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

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 –

+0

私はこの例をポーズとして単純なものにしています:setInterval(function(){alert( "Hello")}、3000);これはsintaxウィンドウです.setInterval( "javascript function"、ミリ秒); –

+0

例を含めるように回答を編集してください –

関連する問題