Как обновлять тег div каждые 500 - 1000 мс? - PullRequest
2 голосов
/ 19 декабря 2010

У меня есть div , содержимое которого зависит от текущего времени встроенного медиа-проигрывателя HTML.

<div id = "myId">
<s:iterator value="timeLine.getFrameByTime('22').slide.indices">
    <a href="javascript:setCurrentTime('<s:property value="timeLine.getFrameByTime('22').slide.firstOccurence"/>')">
             <s:property value="text"/>
       </a>
</s:iterator>
</div>

Номер 22 жестко закодирован. Это должно быть возвращаемое значение функции ниже.

Код JavaScript:

function getCurrentTime() {
    return document.getElementById('video').controls.currentPositionString;
}

function setCurrentTime(time) { 
    document.getElementById('video').controls.currentPosition = parseFloat(time);
}

То, что div выше, должно обновляться каждые 500 мс. Я не думаю, что AJAX и JSON - это решение, потому что тогда сервер будет перегружен.

Есть ли способ обновить этот div из JavaScript (jQuery) цикла while, который спит 500 - 1000 мс?

РЕДАКТИРОВАТЬ: Под обновлением я подразумеваю, что содержимое этого div должно быть изменено. Я знаю текущее время своего медиаплеера и знаю, что представляет собой контент для определенного времени. Теперь мне нужен механизм, чтобы запросить у моего медиаплеера время и изменить содержимое div .

Вопрос: используйте AJAX для каждых 500 мс и вызывайте мой метод на сервере, который дает мне содержимое для ввода определенного времени, или загружайте все данные на странице, инициализируйте и реализуйте логику в JavaScript, которая показывает только часть этих данных в зависимости от текущего время

Ответы [ 3 ]

2 голосов
/ 13 ноября 2011

Вы можете использовать функцию Jquery SetInterval для этой цели ...

setInterval(function() {
      // Do something every 5 seconds
}, 5000);

Это можно использовать для обновления div содержимым из кэша на стороне клиента или для отправки запросов сервера на получение данных для обновления данных.отд.

0 голосов
/ 21 июля 2011

Я бы посоветовал вам выводить все содержимое ваших данных временной шкалы в javascript, если это возможно.

var timeLineIndices = [ 'value1', 'value2', 'value3' ];
var getFrameSlideIndicesByTime = function(time){
    return timeLineIndices[time];
}

Эффективная реализация timeLine.getFrameByTime ('22 '). Slide.indices на стороне клиента с помощью javascript.

Если вывод всех данных кадров слишком велик, рассмотрите возможность вывода только кадров в соответствии с вашим интервалом 500 - 1000 мс.

0 голосов
/ 20 декабря 2010

Вы должны использовать <div>? Если вместо этого вы можете использовать <iframe>, решение будет более простым и может использовать функции HTML. В этом ответе stackoverflow описано, как использовать тег <meta> для автоматического обновления каждые X секунд.

...