การตอบสนองแบบดั้งเดิมนั้นรองรับเธรดมัลติเธรดและแบ็คกราวน์หรือการดำเนินการแบบขนานหรือไม่? เราจะทำสิ่งนั้นได้อย่างไร


13

ฉันได้อ่านเอกสารอย่างเป็นทางการของ react-native และแหล่งสื่อและบล็อกอื่น ๆ แล้วฉันรู้ว่ามีUI ThreadและJavaScript Threadใน react-native Javascript thread เป็นเธรดที่ลอจิกจะรันโค้ดจาวาสคริปต์จะทำการเรียก API การสัมผัสของเหตุการณ์จะถูกประมวลผลและอื่น ๆ อีกมากมาย และ UI Thread จะอัพเดต UI หากเธรด JavaScript กำลังทำงานในกระบวนการและหากเราดำเนินการกับปุ่มหรือเหตุการณ์การสัมผัสอื่น ๆ อีกครั้งจะต้องใช้เวลาในการตอบสนองหลังจากดำเนินการหนึ่งกระบวนการเพียงอัปเดต UI จนกว่าจะรู้สึกว่ามันล้าหลังหรือติดอยู่ที่ใดที่หนึ่ง

ตัวอย่างเช่น

มีตัวนำทางแท็บด้านล่างซึ่งมีสี่แท็บมี listview ในแท็บแรกและมุมมองแผนที่ซึ่งแสดงเส้นทางระหว่างหลายจุดในแท็บที่สอง

ฉันได้ทำการกระทำของปุ่ม (คลิกเช่นเดียวกับปุ่มในมุมมองรายการ) ในแท็บแรกและไปที่แท็บที่สองในทันทีมันรู้สึกล่าช้าเล็กน้อยในการอัปเดต UI หรือใช้เวลาสักครู่ (1-3 วินาที) เพื่อนำทางจากครั้งแรก ไปที่แท็บที่สอง

ในแท็บที่สองแผนที่ใช้เวลา (5-10 วินาที) เพื่อดึงเส้นทางระหว่างหลายจุดเมื่อกระบวนการนี้ดำเนินต่อไปหากฉันนำทางไปยังแท็บอื่น ๆ การนำทางระหว่างแท็บนั้นไม่ราบรื่นและ UI ล่าช้ามีจำนวนมาก

เราจะทำให้แอปที่ตอบสนองต่อพื้นเมืองตอบสนองได้เร็วขึ้นต่อการกระทำที่สัมผัสได้และลดความล่าช้าของ UI

มีแนวคิดของเธรดมัลติเธรดและแบ็คกราวน์ใด ๆที่เราสามารถเรียกใช้ logics เฉพาะในเธรดหลักและอัปเดต UI เพื่อสร้างแอปพลิเคชันที่ตอบสนองพื้นเมืองเพื่อตอบสนองได้เร็วขึ้นโดยไม่ล่าช้า

คำตอบ:


0

เป็นไปไม่ได้ที่จะใช้เธรดใน react-native แต่คุณสามารถใช้แพ็คเกจของบุคคลที่สามเช่นreact-native-bg-threadสำหรับการปรับแต่งประสิทธิภาพให้เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.