ฉันมีบางอย่า checkboxes นั้นเมื่อมีการคลิกจะทำให้มีการเปลี่ยนแปลงของผู้นำแล้วนี่หยุดคนโปรแกรมสำหรับหลายวินาทีด้วย ฉันก็เหมือน checkboxes ต้องปรับปรุนแรกและ/หรือการแสดงการแสดงตำแหน่งค่าแสงมืดจัด. ฉันพยายามในสิ่งที่แตกต่างกันออกแต่สำหรับเหตุผลบางอย่างไม่มีอย่างอื่นใน DOM จะปรับปรุงก่อนที่จะหยุดอย่าขยับ! การเปลี่ยนแปลงไว้ให้มีขนาดใหญ่โต๊ะเหมือนกันการเอาออกหรือเพิ่มทั้งคอลัมน์และมันทำท่าทางเหมือนว่ามีระดับความสำคัญสูงขึ้นมาอย่างอื่นเพราะอื่นพยายามที่จะปรับปรุงที่ DOM หลังจากการคลิกที่ตัวเลือกอย่างผ่านจนกว่าจะมีโต๊ะเสร็จสมบูรณ์ส่งการแสดงผล. FWIW ฉันสามารถใช้คอนโซล.ปูมบันทึกการแสดงข้อความก่อนที่โต๊ะปรับปรุงแล้วก็หลังจากที่มัน completes เพื่อเหตุผลบางอย่าง
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.