簡體   English   中英

如何防止javascript並行運行一些代碼編輯文件?

[英]How to prevent javascript from running in parallel some code editing the document?

我想用js(沒有框架)編輯一個頁面,所以我創建了一些函數,每個都編輯一些東西。 在此期間,我想隱藏頁面,所以我用一些空代碼臨時替換正文,調用函數編輯頁面,然后設置回原始正文。 我的問題是函數的結果一下子顯示出來,所以頁面永遠不會被“隱藏”。

這是我要求做的所有事情的主要功能。

async function blocker() {
    hide(); //replace body 

    ... //some edit

    sleep(5000); //assume I have a function to delay the editing
    unhide(); //put back the original body
}

這是隱藏功能

var html;

function hide(){
    html = document.body;
    tempBody = document.createElement('body');
    tempBody.innerText = "LOADING";
    tempBody.style = `...`;
    document.body = tempBody;
}

我希望在調用blocker()之后立即看到“LOADING”文本,而是等待所有操作完成,並且僅在unhide()完成后顯示更改。 請你幫助我好嗎?

它會工作,沒有異步,等待

function blocker() {

    hide(); //replace body 

    //some edit

    setTimeOut(function(){

      unhide(); //put back the original body after 5s

    }, 5000);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM