繁体   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