5

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

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

ありがとう!

4

1 に答える 1

0

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

これは、タイミングイベントの例のドキュメントへのリンクです

可能な限り単純な例を示します。

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

そしてこれがシンタックス

window.setInterval("javascript function",milliseconds);
于 2014-04-07T16:22:59.063 に答える