ตารางบนเว็บ (html table) จำนวน 5000+ แถวใช้เวลาดึงข้อมูลและเรนเดอร์ 2-3 นาที ใช้เวลามากเกินไปมั้ยครับ

ผมใช้ datatable api (่js lib) เพราะอยากใช้ฟังก์ชั่น sort กับ search ของมัน
ผมให้ตารางแสดงรายการทีละ 500 แถว เพื่มไม่ให้มันหน่วง และกินสเปค แต่ความจริงมันเรนเดอร์ (draw) แถวรอไว้ทั้ง 5000เลย  เพราะผมเห็นตอน debugging เส้น grid (ไม่รู้เรียกว่าอะไร) ที่แสดงขนาดของตารางมันทะลุขอบบนล่างตาราง  และเลื่อนตาม แถวเวลาผมเลื่อนสกอร์
แถม auto pagination  ก็ไม่ทำงานอีก  ต้องให้คนใช้กดหน้า page เอาเอง  ไม่รู้เพราะมันไม่รองรับ ie หรือเปล่า
มีอีก lib หนึ่งที่ทำงานร่วมกับ html table ให้ไหลลื่น เหมือนมันเรนเดอร์ตารางออกมาเป็นภาพ   น่าจะใช้ webgl  แล้วแสดงตารางจริงๆ  ในส่วนที่เมาส์โฟกัส  แต่เอามาใช้รวมกับ datatable คงต้องแต่เขียนให้เรนเดอร์ใหม่หลังจากที่เกิด event    sort กับ search และเปลี่ยน page  ไม่รู้จะทำได้หรือเปล่า   ผมไม่อยากทำ กลัวมันบานปลาย

มีบางคอลัมน์ใช้ฟังก์ชั่นทางคณิตสาตร์นิดหน่อย  ไม่รู้ว่าเป็นสาเหตุให้หน่วงหรือเปล่า คือเอาใช้เวลางานสินค้า (มาผลิต) มาหักลบกับเวลาได้รับสินค้า  แล้วทำฟอร์แมต ให้เป็น +-0:00  แล้วใส่ css class ให้มีสีว่าติดลบหรือบวก  ตอนพิมพ์ กำลังคิดว่าให้มันเซ็ตเวลารอไว้ใน database เลยแต่ดันนึกขึ้นได้ว่าทำไม่ได้เพราะ  ถ้ายังไม่ได้รับงาน ผมก็ต้องเอามันมาลบกับเวลาปัจจุบันอยู่ดี เอา  date datatype สองตัวมาลบกัน 5000 ครั้ง คิดว่าคงไม่ใช้เวลาเยอะ หรือเซ็ตรอไว้ใน database เลยพอ แถวไหนมัน null ก็ค่อยคำนวณเอาเวลาใช้งานสินค้ามาลบกับเวลาปัจจุบัน

 ผมอาจจะบ่นอย่างเดียวแทนที่จะเอาเวลาไปทดลองความแตกต่างของเวลา   แต่ด้วยที่ผมเขียนเว็บบน excel อีกทีเลย เช็คเวลาที่ใช้ (ลืมศัพท์อีกละ) ตอน debug จากไลน์หนึ่งไปไลน์หนึ่งไม่ได้ ide มันเก่าแล้ว แต่จะเขียนให้เวลาที่ใช้อยู่ในตัวแปรก็ได้   แต่ต้องตัดแปะโค้ด ทุกๆครั้งเวลาจะเช็คจากบรรทัดหนึ่งไปอีกบรรทัดหนึ่ง  แถมเปิดคอนโซลดูไม่ได้  เพราะมันเป็นเว็บคอนโทรลเชยๆ บน vba userform อีกที ต้องส่งค่าผ่าน message  box หรือในตัวแปลแล้วเอาเมาส์ไปชี้ตัวแปรเพื่อดูตรง tooltip 

อีกสาเหตุหนึ่งที่อาจดีเลย์คือมันคือมันมีคอลัมน์ที่สามารถ ดู remark หมายเหตุหรือปัญหาได้ และแสดงเป็น custom tooltip อีก  ขนาดผมไปลอกโค้ดเขามา  ยังแสดงผลผิดพลาดชอบค้างตอนเมาส์ hover  ทุกวันนี้ก็ยังไม่แก้ (ที่ทำมาไม่มีใครใช้หรอกเลยไม่แก้) แต่ด้วยมันผมออกแบบให้มัน remark พร้อมได้ที่และหลายๆรายการเลยเก็บข้อมูล database  ตารางหลักเป็น remark code แล้ว merge กับ database   อีกตารางหนึ่งที่เก็บข้อความไว้  เพราะไม่อยากใส่ หมายเหตุเดียวกันยาวๆ เหมือนกันๆ หลายช่อง  

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

ความที่ตอนแรกผมโดนเร่ง ด้วยความมักง่าย ผมเลยส่งออกไฟล์ excel จากตาราง  html ไปเลยแถมส่งผ่านคลิปบอร์ดเอาไปแปลงเป็น excel  และคลิปบอร์ดมันเป็นพื้นที่ทุกๆแอพถึงได้   ไม่ควรทำ แต่ที่ทำแบบนั้นเพราะ มันส่งข้อมูลระหว่าง vba กับ html ได้ไวที่สุดแล้ว (ความจริงขี้เกียจแถมโดนเร่ง  ทำคนเดียวมันเศร้านะแต่ความจริง vba มันเข้าถึง dom ตรงๆ ได้อยู่แล้ว) และผมทำฟีเจอร์ส่งออก excel แค่รายการที่ selected ไว้ก็เลยใช้มันส่งออกทั้งหมดได้ด้วยเลย  ทำให้เวลาเอาได้ข้อมูลของวันนี้จะต้องมานั่งรอ 3  นาทีให้มันสร้างตารางก่อน  ถ้าเอาทั้งเดือนก็ครึ่ง ช.ม. กว่าๆ

ความจริงมันส่งออกจาก ดาต้าเบสง่ายๆ โดยตรงได้ด้วยซ้ำ  จาก office.access ที่เป็น framework  มีให้ใช้ทั้งคอมธรรมดาที่ลง office หรือ windows server  

มั่วประเด็นมาไกลละ  สรุปว่าผมจะทำส่งออก excel  ด้วย office.access.apllcation และทำตารางรีพอร์ตให้สั้นลง  
ที่บ่นมาตั้งนานเพราะผมเป็นคนเรียบเรียงความคิดตัวเองไม่เก่ง   พิมพ์ไปคิดไป โยงไป เหมือนจะบกพร่อมทางการสื่อสาร
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่