我有 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是解决方案,因为服务器会被重载。
有没有办法从JavaScript(jQuery)刷新 div ,而循环睡眠时间为500 - 1000毫秒?
编辑:刷新我的意思是,应该更改 div 的内容。我知道我的媒体播放器的当前时间,我知道特定时间输入的内容是什么。现在我需要这种机制来询问媒体播放器的时间并更改 div 内容。
问题是:每隔500毫秒使用一次AJAX并在服务器上调用我的方法,该方法为我提供特定时间输入的内容或在页面上加载整个数据初始化并在JavaScript中实现逻辑,根据当前情况仅显示部分数据时间?
答案 0 :(得分:2)
您可以使用Jquery SetInterval函数来实现此目的......
setInterval(function() {
// Do something every 5 seconds
}, 5000);
这可用于刷新div与客户端缓存中的内容,或发送服务器请求以检索数据以刷新div。
答案 1 :(得分:0)
你必须使用<div>
吗?如果您可以使用<iframe>
,则解决方案更简单,并且可以使用HTML功能。此stackoverflow answer描述了如何使用<meta>
标记每X秒自动刷新一次。
答案 2 :(得分:0)
如果可能,我建议您将timeLine数据的所有内容输出到javascript。
var timeLineIndices = [ 'value1', 'value2', 'value3' ];
var getFrameSlideIndicesByTime = function(time){
return timeLineIndices[time];
}
通过javascript有效地在客户端实现timeLine.getFrameByTime('22')。slide.indices。
如果输出所有帧数据太大,请考虑根据500 - 1000ms间隔仅输出帧。