วิธีบังคับให้เป็น DOM ธาตุที่จะปรับปรุงก่อนที่คนอื่นหรือแสดงการแสดงตำแหน่งค่าแสงมืดจัดอยู่ใน Svelte?

0

คำถาม

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

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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่