สร้างลิงก์หน้าแบบไดนามิก - ทำให้การนำทางง่ายขึ้นสำหรับผู้ใช้

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

ปัญหา: การสร้างลิงก์หน้าแบบไดนามิก

เมื่อออกแบบระบบเพื่อแสดงเนื้อหาผ่านหลายหน้า คำถามสำคัญเกิดขึ้น: เราจะสร้างลิงก์ที่ช่วยให้ผู้ใช้สามารถนำทางระหว่างหน้าเหล่านี้ได้อย่างมีประสิทธิภาพได้อย่างไร?

ตัวอย่างเช่น เมื่อผู้ใช้อยู่ที่หน้าที่ 7 จากทั้งหมด 593 หน้าลิงก์ควรถูกสร้างขึ้นอย่างไร? รูปแบบที่พบบ่อยอาจดูเหมือน:

1 ... 5 6 7 ... 593

ในรูปแบบข้างต้น ผู้ใช้สามารถเห็นหน้าหมายเลขแรก (1) หน้าปัจจุบัน (7) และหน้าสุดท้าย (593) พร้อมกับหน้าที่อยู่ติดกัน (5 และ 6) รูปแบบนี้ช่วยให้การนำทางมีความกระชับและเป็นมิตรต่อผู้ใช้

วิธีแก้ปัญหา: วิธีการทีละขั้นในการสร้างลิงก์หน้า

ด้านล่างเป็นแนวทางที่เป็นระบบในการสร้างลิงก์หน้าแบบไดนามิก เราจะระบุลักษณะสำคัญที่จะพิจารณาในอัลกอริธึมก่อน จากนั้นจะให้โค้ดจำลองเพื่อแสดงวิธีการนำไปใช้

คุณลักษณะสำคัญของอัลกอริธึมหน้า

  1. แสดงลิงก์ไปยังหน้าก่อนหน้า (Prev) หากผู้ใช้ไม่ได้อยู่ที่หน้าหมายเลขแรก
  2. แสดงหมายเลขหน้าหมายเลขแรกเสมอ
  3. แสดงหมายเลขหน้าปัจจุบัน
  4. รวมหน้าก่อนและหลังหน้าปัจจุบัน
  5. แสดงหมายเลขหน้าสุดท้าย
  6. แสดงลิงก์ไปยังหน้าถัดไป (Next) หากผู้ใช้ไม่ได้อยู่ที่หน้าสุดท้าย

การนำอัลกอริธึมลิงก์หน้าไปใช้

อัลกอริธึมเบื้องต้นเป็นจุดเริ่มต้นที่ดี เราจะตรวจสอบหลายกรณีขอบเขตและปรับปรุงแนวทางตามสถานการณ์เหล่านั้น

การพยายามครั้งแรก: ลิงก์หน้าเบื้องต้น

function printPageLinksFirstTry(num totalPages, num currentPage)
  if (currentPage > 1)
    print "Prev"
  print "1"
  print "..."
  print currentPage - 1
  print currentPage
  print currentPage + 1
  print "..."
  print totalPages
  if (currentPage < totalPages)
    print "Next"
endFunction

การจัดการกรณีขอบเขต: การปรับปรุงตรรกะ

เราจำเป็นต้องพิจารณาเมื่อหน้าปัจจุบันใกล้ขอบเขตของขอบเขต สำหรับสิ่งนี้ เราสามารถแก้ไขฟังก์ชันก่อนหน้า:

function printPageLinksHandleCloseToEnds(num totalPages, num currentPage)
  if (currentPage > 1)
    print "Prev"
  print "1"
  if (currentPage > 2)
    print "..."
  if (currentPage > 2)
    print currentPage - 1
  print currentPage
  if (currentPage < totalPages - 1)
    print currentPage + 1
    print "..."
  print totalPages
  if (currentPage < totalPages)
    print "Next"
endFunction

การทำความสะอาด: การทำให้โค้ดมีประสิทธิภาพยิ่งขึ้น

เมื่อเราได้ทำการปรับปรุงต่อไป เราจะสามารถลดความซ้ำซ้อนในโค้ด:

function printPageLinksCleanedUp(num totalPages, num currentPage)
  if (currentPage > 1)
    print "Prev"
  print "1"
  if (currentPage > 2)
    print "..."
    print currentPage - 1
  print currentPage
  if (currentPage < totalPages - 1)
    print currentPage + 1
    print "..."
  print totalPages
  if (currentPage < totalPages)
    print "Next"
endFunction

การปรับแต่งสุดท้าย: รองรับทุกสถานการณ์

สุดท้ายนี้ เรามาทำให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้องแม้เมื่อมีเพียงไม่กี่หน้า:

function printPageLinksFinal(num totalPages, num currentPage)
  if (totalPages == 1)
    return

  if (currentPage > 1)
    print "Prev"

  print "1"

  if (currentPage > 2)
    print "..."
    print currentPage - 1

  if (currentPage != 1 and currentPage != totalPages)
    print currentPage

  if (currentPage < totalPages - 1)
    print currentPage + 1
    print "..."

  print totalPages

  if (currentPage < totalPages)
    print "Next"
endFunction

สรุป

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

เราหวังว่าคำแนะนำนี้จะช่วยเสริมสร้างให้คุณสามารถสร้างลิงก์หน้าให้มีประสิทธิภาพในแอปพลิเคชันของคุณได้!