Disclaimer: ฉันหนักใช้YUI DataTable โดยไม่ต้องปวดหัวไม่เป็นเวลานาน มันทรงพลังและมั่นคง สำหรับความต้องการของคุณสามารถใช้ScrollingDataTable suports ช
- x เลื่อน
- Y-เลื่อน
- XY-เลื่อน
- กลไกเหตุการณ์ที่ทรงพลัง
สำหรับสิ่งที่คุณต้องการผมคิดว่าคุณต้องการคือtableScrollEvent API ของมันบอกว่า
ยิงเมื่อ DataTable การเลื่อนแบบตายตัวมีการเลื่อน
เนื่องจากแต่ละ DataTable ใช้แหล่งข้อมูลคุณสามารถตรวจสอบข้อมูลผ่าน tableScrollEvent พร้อมกับขนาดลูปการเรนเดอร์เพื่อเติมข้อมูล ScrollingDataTable ตามความต้องการของคุณ
ขนาดลูปการแสดงผลพูดว่า
ในกรณีที่มีความต้องการ DataTable ของคุณเพื่อแสดงความสมบูรณ์ของชุดที่มีขนาดใหญ่มากของข้อมูลการตั้งค่า renderLoopSize สามารถช่วยในการจัดการการแสดงผลเบราว์เซอร์ DOM เพื่อให้หัวข้อ UI ไม่ได้รับการล็อคขึ้นบนโต๊ะขนาดใหญ่มาก ค่าใด ๆ ที่มากกว่า 0 จะทำให้การเรนเดอร์ DOM ถูกเรียกใช้ในเชน setTimeout () ที่แสดงจำนวนแถวที่ระบุในแต่ละลูป ควรกำหนดมูลค่าที่เหมาะสมต่อการใช้งานเนื่องจากไม่มีกฎที่ยากและรวดเร็วเพียงแนวทางทั่วไปเท่านั้น:
- โดยดีฟอลต์ renderLoopSize คือ 0 ดังนั้นแถวทั้งหมดจะถูกเรนเดอร์ในลูปเดียว renderLoopSize> 0 เพิ่มโอเวอร์เฮดดังนั้นให้ใช้อย่างรอบคอบ
- หากชุดข้อมูลของคุณก็พอขนาดใหญ่ (จำนวนแถว X จำนวนคอลัมน์ X รูปแบบซับซ้อน) ที่ผู้ใช้มีประสบการณ์ความล่าช้าในการแสดงผลภาพและ / หรือจะทำให้สคริปต์เพื่อแขวนพิจารณาตั้ง renderLoopSize
- renderLoopSize ที่ต่ำกว่า 50 อาจไม่คุ้มค่า renderLoopSize> 100 น่าจะดีกว่า
- ชุดข้อมูลอาจไม่ถือว่าใหญ่พอเว้นแต่จะมีหลายร้อยและหลายร้อยแถว
- การมี renderLoopSize> 0 และ <ผลรวมแถวทำให้ตารางถูกเรนเดอร์ในหนึ่งลูป (เหมือนกับ renderLoopSize = 0) แต่มันยังทริกเกอร์การทำงานเช่นการสตริปแถว post-render ที่จะจัดการจากเธรด setTimeout แยกต่างหาก
ตัวอย่างเช่น
// Render 100 rows per loop
var dt = new YAHOO.widget.DataTable(<WHICH_DIV_WILL_STORE_YOUR_DATATABLE>, <HOW YOUR_TABLE_IS STRUCTURED>, <WHERE_DOES_THE_DATA_COME_FROM>, {
renderLoopSize:100
});
<WHERE_DOES_THE_DATA_COME_FROM> เป็นเพียงหนึ่งเดียวแหล่งข้อมูล มันสามารถเป็น JSON, JSFunction, XML และแม้กระทั่งองค์ประกอบ HTML เดียว
ที่นี่คุณสามารถดูบทแนะนำแบบง่ายที่จัดทำโดยฉัน ระวังไม่มีปลั๊กอิน DATA_TABLE อื่นรองรับการคลิกเดี่ยวและคู่ในเวลาเดียวกัน YUI DataTable ช่วยให้คุณ และยิ่งกว่านั้นคุณสามารถใช้กับ JQuery ได้โดยไม่ต้องปวดหัว
ตัวอย่างบางส่วนคุณสามารถดู
อย่าลังเลที่จะถามเกี่ยวกับสิ่งอื่นที่คุณต้องการเกี่ยวกับ YUI DataTable
ความนับถือ,