快速解決js動(dòng)態(tài)改變dom元素屬性后頁(yè)面及時(shí)渲染的問(wèn)題
今天實(shí)現(xiàn)一個(gè)進(jìn)度條加載過(guò)程,dom結(jié)構(gòu)其實(shí)就是兩個(gè)div
<div class="pbar"> <div class="ui-widget-header" id="percent_bar" style="width: 23%;"></div> </div>
控制里層div的寬width屬性,就能實(shí)現(xiàn)進(jìn)度條往前走的效果。
我的進(jìn)度條是顯示下載文件的進(jìn)度,簡(jiǎn)單實(shí)現(xiàn)一共100個(gè)文件的話,下載一個(gè)就1%,下載了20個(gè)就走到20%。于是代碼實(shí)現(xiàn)如下:
var fileCount=fileList.length();
fileList.foreach(function(i,obj){
........//下載文件
document.getElementById("percent_bar").style.width=i/fileCount*100 + "%";//改變內(nèi)層div的寬度
})
但是你會(huì)看到文件一個(gè)個(gè)下載下來(lái),但進(jìn)度始終沒(méi)有動(dòng)一動(dòng)。這是因?yàn)閖s邏輯會(huì)優(yōu)先執(zhí)行,而頁(yè)面渲染會(huì)在js執(zhí)行結(jié)束后才進(jìn)行的,這樣就無(wú)法看到一個(gè)正常的進(jìn)度條了。
怎么能讓js邏輯執(zhí)行等一等頁(yè)面渲染呢?
var i=0;
var fileCount=fileList.length();
var loop = function () {
if(i>fileCount)//退出循環(huán)
return;
.....//下載文件
i++;
document.getElementById("percent_bar").style.width=i/fileCount*100+"%";
//下一步循環(huán) that.loopId = window.setTimeout(loop, 0);7 }
that.loopId = window.setTimeout(loop, 0);
通過(guò)settimeout函數(shù)可以實(shí)現(xiàn)進(jìn)度條動(dòng)態(tài)效果了。
以上這篇快速解決js動(dòng)態(tài)改變dom元素屬性后頁(yè)面及時(shí)渲染的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- javascript頁(yè)面渲染速度測(cè)試腳本分享
- vue.js,ajax渲染頁(yè)面的實(shí)例
- ajax請(qǐng)求+vue.js渲染+頁(yè)面加載的示例
- 通過(guò)nodejs 服務(wù)器讀取HTML文件渲染到頁(yè)面的方法
- Vue.js 通過(guò)jQuery ajax獲取數(shù)據(jù)實(shí)現(xiàn)更新后重新渲染頁(yè)面的方法
- php使用QueryList輕松采集js動(dòng)態(tài)渲染頁(yè)面方法
- 詳解Next.js頁(yè)面渲染的優(yōu)化方案
- JS利用?React.lazy?優(yōu)化頁(yè)面初次渲染
相關(guān)文章
javascript字母大小寫(xiě)轉(zhuǎn)換的4個(gè)函數(shù)詳解
這篇文章主要介紹了javascript字母大小寫(xiě)轉(zhuǎn)換的4個(gè)函數(shù)詳解,需要的朋友可以參考下2014-05-05
用javascript實(shí)現(xiàn)倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了用javascript實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02
js對(duì)象屬性名駝峰式轉(zhuǎn)下劃線的實(shí)例代碼
這篇文章主要介紹了js對(duì)象屬性名駝峰式轉(zhuǎn)下劃線的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法
這篇文章主要介紹了JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法,涉及javascript操作html元素及css樣式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
JavaScript常見(jiàn)的五種數(shù)組去重的方式
本文主要JavaScript常見(jiàn)的五種數(shù)組去重的方式進(jìn)行一一思路分析實(shí)例介紹,易于理解與學(xué)習(xí),具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12
A標(biāo)簽觸發(fā)onclick事件而不跳轉(zhuǎn)的多種解決方法
一個(gè)標(biāo)簽僅僅是要觸發(fā)onclick行為,遇到了A標(biāo)簽觸發(fā)onclick事件時(shí)不執(zhí)行跳轉(zhuǎn),下面與大家分享下四種解決方法,感興趣的朋友可以參考下哈2013-06-06
asp javascript 實(shí)現(xiàn)關(guān)閉窗口時(shí)保存數(shù)據(jù)的辦法
asp javascript 實(shí)現(xiàn)關(guān)閉窗口時(shí)保存數(shù)據(jù)的辦法...2007-11-11

