Как перезагрузить данные в Simile Timeline

Я создал временную шкалу SIMILE, которая использует файл XML в качестве источника данных, который создается методом при вызове команды aspx. Проблема в том, что при обновлении файла XML временная шкала не обновляется и показывает данные первой загрузки. Данные обновляются только тогда, когда я закрываю браузер и снова открываю веб-приложение с временной шкалой. Даже если я перейду на другую страницу своего веб-приложения, а затем вернусь на страницу с временной шкалой, данные покажут то же самое. Я уже подтвердил, что файл 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>

Спасибо!


person Bruno V    schedule 05.11.2012    source источник
comment
Не уверен, почему вы оборачиваете загрузку документа jquery внутри функции, которая вызывается при загрузке тела.   -  person Lin    schedule 02.04.2014


Ответы (1)


Первая подсказка заключается в том, что вы оборачиваете свой код javascript в функцию загрузки. Попробуйте создать кнопку для обновления страницы, используя событие функции onClick. Если вы хотите перейти на определенный период времени, вы можете использовать событие синхронизации JavaScript.

Вот ссылка на документацию с примерами событий синхронизации

Я привожу пример настолько простым, насколько это возможно:

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

и это синтаксис

window.setInterval("javascript function",milliseconds);
person Juan Jose Gazzola    schedule 07.04.2014
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person Michael Dunlap; 07.04.2014
comment
Я изложил пример настолько просто, насколько это возможно: setInterval(function(){alert(Hello)},3000); и это синтаксис window.setInterval (функция javascript, миллисекунды); - person Juan Jose Gazzola; 07.04.2014