最近有個後端同事在寫更新進度條遇到了一個問題,進度條馬不停蹄,直奔100%!!!!,這讓我來了興趣!
他的代碼大致如下:
var todo=0;
var progressNumber=0;//進度條
do{
ajax(){//ajax已經設置爲同步
更新progressNumber
}
}while(progressNumber<100)
初看是沒得問題。但是效果就是直接奔到100了。
後就沒用do while ,for等循環去ajax,直接使用setInterval去請求
var interval=null;
interval=setInterval(() => {
ajax(){
//正常更新progressNumber;
//不過當progressNumber 100時,清掉計時器
if(progressNumber >100){
clearInterval(interval)
}
}
}, 300);
說來慚愧,並沒有找到原因在哪裏,一開始以爲是vue dom 更新渲染的問題,使用了setTimeout ,nextTIck,等都沒有效果,後直接使用jq去更新dom也是無效的。就先用上面的方式了。
咻咻~