如何每 500 - 1000 毫秒刷新一次 div 标签?
我有这个 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) while 循环刷新睡眠 500 - 1000 毫秒的 div ?
编辑:我所说的刷新是指,该 div 的内容应该更改。我知道我的媒体播放器的当前时间,并且我知道特定时间输入的内容是什么。现在我需要一种机制来询问我的媒体播放器的时间并更改 div 内容。
问题是:每 500 毫秒使用 AJAX 并在服务器上调用我的方法,该方法为我提供特定时间输入的内容,或者在页面初始化上加载整个数据并在 JavaScript 中实现逻辑,该逻辑仅根据当前时间显示该数据的一部分?
I have this div which contents depends of the current time of HTML embedded media player.
<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>
Number 22 is hardcoded. It should be return value of function below.
JavaScript code:
function getCurrentTime() {
return document.getElementById('video').controls.currentPositionString;
}
function setCurrentTime(time) {
document.getElementById('video').controls.currentPosition = parseFloat(time);
}
That div above should be refreshed for every 500ms. I don't think that AJAX and JSON is the solution because server would be overloaded then.
Is there a way to refresh that div from JavaScript (jQuery) while loop which sleeps for 500 - 1000ms?
EDIT: By refresh I mean, content of that div should be changed. I know the current time of my media player and I know what is the content for particular time input. Now I need the mechanism to ask my media player for it's time and change the div content.
The question is: Use AJAX for every 500ms and call my method on server which gives me contents for particular time input or load the whole data on page initialize and implement logic in JavaScript which shows only the part of that data depending on current time?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 Jquery SetInterval 函数来实现此目的...
这可用于使用客户端缓存中的内容刷新 div 或发送服务器请求以检索数据以刷新 div。
You can use Jquery SetInterval Function for this purpose...
This can be used to either refresh the div with contents from client side cache or to send server requests to retrieve data to refresh the div.
您必须使用
吗?如果您可以改用
,则解决方案会更简单并且可以使用 HTML 功能。这个 stackoverflow 答案 描述了如何使用
< ;meta>
标签每 X 秒自动刷新一次。Do you have to use a
<div>
? If you can use an<iframe>
instead, the solution is simpler and can use HTML features. This stackoverflow answer describes how to use a<meta>
tag to refresh automatically every X seconds.如果可能的话,我建议你将时间线数据的所有内容输出到javascript。
通过 javascript 在客户端有效实现 timeLine.getFrameByTime('22').slide.indices 。
如果输出所有帧数据太大,请考虑仅根据 500 - 1000ms 间隔输出帧。
I would suggest you output all content of your timeLine data to javascript, if possible.
Effectively implementing timeLine.getFrameByTime('22').slide.indices at client side by javascript.
If outputing all frames data is too large, consider output only the frames according to your 500 - 1000ms interval.