我们经常看到黑客电影里面,电脑屏幕会自动打字(一个字符接一个字符),找个图片帮你们脑补
作为前端的我们,当然是用我们最最最熟悉的JavaScript来实现啦,直接上代码
function outputSlowly(str){
var r=str.split(""),
div=document.getElementById("container"),
s='';
setTimeout(function(){
s+=r.shift()
div.innerHTML=s;
if(r.length>0){
setTimeout(arguments.callee,200)
}
},200)
}
outputSlowly('你好,这是一个测试用的句子!')
很简单吧,其实就是利用setTimeout(定时器)来挂起代码!
这种技术也可以用到我们平时的需求中,例如要处理一个很大的数组,就可以用到这个技术来把执行过程分片!
这样做的目的主要因为JavaScript是单线程执行代码的,一个需要长时间执行的代码段会阻塞后面代码的执行!!
具体实现你们可以参考上面的例子