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>
ありがとう!