0Pricing
Kotlin Multiplatform Academy · บทเรียน

การลองใหม่และทางเลือกเมื่อออฟไลน์

กู้คืนจากความล้มเหลวชั่วคราวอย่างเหมาะสม

การลองใหม่และทางเลือกเมื่อออฟไลน์ เป็นบทเรียน Kotlin Multiplatform Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Multiplatform Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

ความล้มเหลวบางอย่างเกิดขึ้นชั่วคราว

การหมดเวลามักหายได้เมื่อ尝試อีกครั้ง ให้ถือว่า ข้อผิดพลาดชั่วคราว เป็นกรณีที่ควรลองใหม่ ไม่ใช่ทางตันสุดท้ายสำหรับผู้ใช้

ลองใหม่เฉพาะข้อผิดพลาดที่เหมาะสม

ให้ลองใหม่เฉพาะชนิด ชั่วคราว เช่น การหมดเวลาของเครือข่าย ข้อผิดพลาดในการแยกวิเคราะห์จะล้มเหลวซ้ำทุกครั้ง ดังนั้นการลองใหม่จึงเป็นเพียงการเสียแรงโดยเปล่าประโยชน์

วงรอบการลองใหม่แบบง่าย

ห่อการเรียกใช้ไว้ใน วงรอบ ขนาดเล็กที่ลองทำงานไม่กี่ครั้ง หากสำเร็จในที่สุด ให้ส่ง Success กลับ มิฉะนั้นให้ดำเนินต่อไปจนถึง Failure

repeat(3) {
  val r = fetch()
  if (r is Success) return r
}

เว้นระยะระหว่างการลอง

การยิงคำขอซ้ำทันทีมักไม่ช่วยอะไร ให้เพิ่ม ช่วงหน่วงเวลา ระหว่างแต่ละครั้ง เพื่อเปิดโอกาสให้เซิร์ฟเวอร์ที่มีปัญหาฟื้นตัว

delay(attempt * 500L)

จำกัดจำนวนครั้งที่ลอง

อย่าวนซ้ำตลอดไป กำหนด ค่าสูงสุดไว้ที่สองหรือสามครั้ง เพื่อไม่ให้ผู้ใช้ต้องรอบริการที่หยุดทำงานจริง ๆ อย่างไม่มีที่สิ้นสุด

ลองใช้แคช

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

แสดงข้อมูลเก่า แล้วค่อยปรับปรุง

รูปแบบที่เป็นมิตรคือ แสดงข้อมูลเก่าระหว่างตรวจสอบใหม่: แสดงข้อมูลที่แคชไว้ทันที แล้วค่อยดึงข้อมูลล่าสุดเบื้องหลังอย่างเงียบ ๆ

แจ้งผู้ใช้ว่าออฟไลน์

เมื่อเปลี่ยนไปใช้แคช ให้ตั้งค่า ตัวบ่งชี้ออฟไลน์ ในสถานะ เพื่อให้ส่วนติดต่อผู้ใช้แสดงแบนเนอร์เล็ก ๆ ว่าเนื้อหาอาจเก่า

โครูทีนทำให้โค้ดสะอาด

เนื่องจากโค้ดนี้ทำงานในฟังก์ชัน suspend การหน่วงเวลาและการลองใหม่จึงอ่านเหมือนโค้ดตามลำดับทั่วไป โดยไม่ต้องจัดการการเรียกกลับหรือเธรด

suspend fun loadWithRetry(): Result<User>

รักษาความสามารถในการยกเลิก

เคารพ การยกเลิก: หากหน้าจอถูกปิดระหว่างการลองใหม่ การทำงานพร้อมกันแบบมีโครงสร้างจะหยุดวงรอบ เพื่อไม่ให้มีงานเบื้องหลังรั่วค้าง

จุดเริ่มต้นที่ทนทานเพียงจุดเดียว

ผู้เรียกเพียงเรียกใช้ loadWithRetry แล้วรับผลลัพธ์ที่ดีที่สุด ได้แก่ ข้อมูลล่าสุด ข้อมูลจากแคช หรือ Failure ที่ชัดเจน โดยทั้งหมดตัดสินใจในโค้ดที่ใช้ร่วมกัน

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ลองคิดดูว่าความล้มเหลวใดควรลองอีกครั้ง

สรุป

คุณลองใหม่สำหรับข้อผิดพลาดชั่วคราวโดยเพิ่มช่วงหน่วงเวลา จำกัดจำนวนครั้ง เปลี่ยนไปใช้ข้อมูลแคชพร้อมตัวบ่งชี้ออฟไลน์ และรักษาความสามารถในการยกเลิกไว้ในโค้ดที่ใช้ร่วมกัน 🔄

คำถามที่พบบ่อย

บทเรียน “การลองใหม่และทางเลือกเมื่อออฟไลน์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การลองใหม่และทางเลือกเมื่อออฟไลน์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Multiplatform Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การลองใหม่และทางเลือกเมื่อออฟไลน์”

กู้คืนจากความล้มเหลวชั่วคราวอย่างเหมาะสม คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Multiplatform Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Multiplatform Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การลองใหม่และทางเลือกเมื่อออฟไลน์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Multiplatform Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Multiplatform Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดผลลัพธ์แบบปิดผนึก
  2. ดักจับข้อผิดพลาดเครือข่ายและการแยกวิเคราะห์
  3. แมปข้อผิดพลาดเป็นข้อความ UI
  4. การลองใหม่และทางเลือกเมื่อออฟไลน์
← กลับไปที่ Kotlin Multiplatform Academy