gpt4 book ai didi

javascript - 代码没有按顺序运行? DOM 的更新是一次性发生的吗?

转载 作者:行者123 更新时间:2023-12-02 23:30:11 25 4
gpt4 key购买 nike

我在按顺序运行代码时遇到了一些麻烦。基本上我有一个隐藏元素的函数,控制台记录一条消息,然后运行另一个函数,对 DOM 进行缓慢而大规模的更改。

理想情况下,隐藏首先发生以表明用户已做出响应,然后他们可以在所有内容刷新时处理几秒钟的延迟。但现在,控制台首先被记录,然后所有更改在几秒钟后立即发生。因此隐藏与更新一起发生。

如果有任何区别,更新函数会创建并销毁几个 div 元素,然后开始创建 JSXGraph 并更新这些图表上的函数、点等。

check_answer(answer_input) {
if (this.ans == answer_input) {
$("#answer-card-section").hide();
console.log("CORRECT!");

current_question.update();
return true;
}
else {
return false;
}
}

谢谢!

最佳答案

在 JS 中执行长时间运行的函数时,渲染 UI 的调用可能会被阻止。在某些情况下,它还可以阻止先前的操作明显更新 DOM,这就是您在这里看到的。

简单的修复方法是将 update() 调用置于超时内并短暂延迟。这将允许 hide() 首先更新 DOM。试试这个:

function check_answer(answer_input) {
if (this.ans == answer_input) {
$("#answer-card-section").hide();

setTimeout(function() {
current_question.update();
}, 25);
return true;
}
else {
return false;
}
}

关于javascript - 代码没有按顺序运行? DOM 的更新是一次性发生的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com