ios*_*eak 5 javascript setinterval
我有一个网站,他们想要一个新闻自动收报机.目前,我有一个填充它的数组,每隔x秒,我想要改变新闻故事.
function startNews(stories) {
}
Run Code Online (Sandbox Code Playgroud)
我知道你可以使用setInterval,但它必须通过一个新的功能,你不能在同一个函数中指定某些javascript来触发它.
你有什么建议?
谢谢!
jfr*_*d00 13
你应该使用setInterval()或重复调用setTimeout().这就是你将来某个时候在javascript中做的事情.
使用这些定时器功能可以做什么没有限制.你认为你不能做到这一点是什么让你试图避免它们?
这是一个伪代码示例:
var newsArray = []; // your code puts strings into this array
var curNewsIndex = -1;
var intervalID = setInterval(function() {
++curNewsIndex;
if (curNewsIndex >= newsArray.length) {
curNewsIndex = 0;
}
setTickerNews(newsArray[curNewsIndex]); // set new news item into the ticker
}, 5000);
Run Code Online (Sandbox Code Playgroud)
或者可以这样做:
var newsArray = []; // your code puts strings into this array
var curNewsIndex = -1;
function advanceNewsItem() {
++curNewsIndex;
if (curNewsIndex >= newsArray.length) {
curNewsIndex = 0;
}
setTickerNews(newsArray[curNewsIndex]); // set new news item into the ticker
}
var intervalID = setInterval(advanceNewsItem, 5000);
Run Code Online (Sandbox Code Playgroud)
你应该尽可能使用setTimeout.如果您的函数运行时间比间隔长,则可能会遇到持续100%的CPU使用情况.
试试这段代码:http: //jsfiddle.net/wdARC/
var stories = ['Story1','Story2','Story3'],
i = -1;
(function f(){
i = (i + 1) % stories.length;
document.write(stories[ i ] + '<br/>');
setTimeout(f, 5000);
})();
Run Code Online (Sandbox Code Playgroud)
替换document.write为您的功能.
| 归档时间: |
|
| 查看次数: |
14960 次 |
| 最近记录: |