如何强制一个DOM元以更新之前,其他人或表明一个等待指示中的苗条的?

0

的问题

我有一些选择框这点击时会造成很大的变化DOM,以及这种冻结应用于几秒钟。 我想框到更新,和/或显示在等待指示。 我已经尝试不同的东西,但由于某种原因没有其他的DOM将更新以前的冻结。 的变化是由一个大型的表格,既可以删除或添加整个柱,并且它的行为,如果这一具有更高的优先级别,因为任何其他尝试更新DOM后点击框,不要走,直到通过表已经完成了重新呈现。 总的来说,我可以使用控制台。日志显示的消息之前的表格更新,以及还在它完成对于一些原因。

dom svelte
2021-11-22 21:14:33
1

最好的答案

0
import {tick} from "svelte";

let checked = false;
$: applyChanges(checked);

async function applyChanges() {
  messageVisible = true
  await tick()
  requestAnimationFrame(() => {
    requestAnimationFrame(() => {
      // do the stuff that causes a lots of dom updates
    })
  })
}

await tick() 适用 messageVisible 改变DOM。
双raf将等待浏览器提请更新DOM。

2021-11-24 12:40:02

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................