我正在取一个textarea内部的字符串,通过分隔符“===== \ n”将其拆分为数组,然后每250ms在textarea内打印出该数组的每个索引。问题是,每当我点击开始所有这一切的按钮时,网页似乎都会冻结。
我是JS的新手,非常感谢任何建议/帮助。
这是我尝试过的。
setInterval调用的方法:( theStage是textarea)
function start(){
var frames = theStage.value.split("=====\n");
while(true){
for(var i = 0; i < frames.length; i++){
theStage.value = frames[i];
}
}
}
计时器:
function changeFrame(){
var time = setInterval(start, 250);
}
答案 0 :(得分:1)
您不需要while(true)
...您的setInterval会为您调用该功能。尝试在没有while
循环的情况下运行它。
更新:
根据您的上述评论,您尝试每250ms
跳过一次数组。
要实现这一点,您需要使用setTimeout!
以下是:
function start(){
var frames = theStage.value.split("=====\n");
var i = 0, l = frames.length;
(function iterator() {
theStage.value = frames[i];
if(++i<l) {
setTimeout(iterator, 250);
}
})();
};
start();