第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

原生js異步請求時(shí),無法改變頁面樣式?

原生js異步請求時(shí),無法改變頁面樣式?

皈依舞 2019-02-25 14:35:14
我有一個(gè)表單頁面,包含上傳圖片功能。點(diǎn)擊提交按鈕時(shí)有兩個(gè)操作:首先改變提交按鈕提示文字:“提交”->“正在提交”。然后異步提交表單內(nèi)容,并接受回調(diào),做對應(yīng)處理。問題:當(dāng)圖片很大時(shí),點(diǎn)擊提交觸發(fā)事件后,提交按鈕提示文字要等到圖片提交成功后才會(huì)改變。當(dāng)打開控制臺(tái)時(shí),明顯看到,如提交圖片的接口耗時(shí)3s,那么提交按鈕的文字要在點(diǎn)擊提交3s后才會(huì)改變?yōu)椤罢谔峤?”,緊接著彈出回調(diào)提示"提交成功"。代碼不方便貼,提交方法是原生js(不是用vue等框架)的formData->ajax方式提交。我目前的解決方式是在提交方法內(nèi)給異步事件加一個(gè)延時(shí)setTimeout。但是我仍然沒有搞明白為什么不加延時(shí)時(shí),異步提交數(shù)據(jù)會(huì)阻斷頁面渲染?
查看完整描述

1 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

答案在這里,通俗解釋,就是,
innerHTML 操作是及時(shí)的,但是頁面渲染是延后的,等js 代碼執(zhí)行完后,有空閑,頁面才渲染,所以會(huì)導(dǎo)致看起來innerHTML 后的代碼已經(jīng)被行了,但是頁面還沒有改變,,,實(shí)際上DOM已經(jīng)改變了,但是還沒有渲染到頁面上去
舉個(gè)例子

document.body.innerHTML = 'text';

alert(document.body.innerHTML);// you will see a 'text' alert

你會(huì)先收到彈窗,但是彈窗內(nèi)容驗(yàn)證了前面的代碼已經(jīng)執(zhí)行了,但是頁面上你會(huì)發(fā)現(xiàn),還沒有改變,就是這種情況。


你操作 innerHTML ,修改了DOM,但是后面的JS代碼會(huì)繼續(xù)執(zhí)行,等代碼執(zhí)行完了,進(jìn)程空閑,頁面才會(huì)渲染,你才會(huì)發(fā)現(xiàn) innerHTML 改變了,所以看起來有延遲。

解決方法:


操作 innerHTML 的代碼放在一個(gè)函數(shù)先執(zhí)行,其他的代碼放在另一個(gè)函數(shù)執(zhí)行


查看完整回答
反對 回復(fù) 2019-03-07
  • 1 回答
  • 0 關(guān)注
  • 408 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)