Mám pár políček, která po kliknutí způsobí mnoho změn v DOM, a to zamrzne aplikace na několik sekund. Rád bych zaškrtávacích políček aktualizace první a/nebo zobrazí indikátor čekající. Zkoušel jsem různé věci, ale z nějakého důvodu, nic jiného v DOM bude aktualizovat před mrazem. Změny jsou vyrobeny, aby se velký stůl, a to buď odstraněním nebo přidáním celé sloupce, a to se chová jako když to má vyšší prioritu než cokoliv jiného, protože všechny ostatní pokusy o aktualizaci DOM po kliknutí na políčko nechoďte přes, dokud stolu byla dokončena re-rendering. OBECNĚ se ale můžete použít konzoli.přihlásit k zobrazení zprávy před tabulku aktualizace, a také po dokončení nějakého důvodu.
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
změny DOM.
Dvojité raf bude čekat na prohlížeč čerpat aktualizováno DOM.