Ako vynútiť DOM prvok, ktorý chcete aktualizovať pred ostatnými, alebo preukázať čaká indikátor v Štíhly?

0

Otázka

Mám niekoľko políčok, ktoré po kliknutí bude spôsobiť veľa zmien v DOM, a to zamrzne až žiadosti o niekoľko sekúnd. Rád by som políčka aktualizovať prvý, a/alebo zobrazenie čaká indikátor. Vyskúšal som rôzne veci, ale z nejakého dôvodu nie je nič iné, na DOM, ktoré bude aktualizovať pred mrazom. Zmeny sú vyrobené na veľký stôl, buď odstránením alebo pridaním celé stĺpce, a pôsobí to, ako keby to má vyššiu prioritu viac ako čokoľvek iné, pretože akékoľvek iné pokusy o aktualizáciu DOM po kliknutí na políčko sa nemusíte prejsť do tabuľky dokončil re-rendering. FWIW môžem použiť konzoly.prihlásiť sa na zobrazenie správy pred tabuľka aktualizácie, a tiež po dokončení je z nejakého dôvodu.

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

Najlepšiu odpoveď

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
    })
  })
}

Na await tick() platí messageVisible zmeny DOM.
Dvojité raf bude čakať na prehliadač čerpať aktualizované DOM.

2021-11-24 12:40:02

V iných jazykoch

Táto stránka je v iných jazykoch

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