ลองเข้ามาอ่าน code ของระบบ canvas
เท่าที่ดูผ่านๆ คิดว่าเข้ารหัสมากเกินความจำเป็น ไปมันจะทำให้ช้าลงหรือเปล่าครับ เห็น loop แล้ว loop อีก
บาง Browser ถึงเปิดได้บ้างไม่ได้บ้าง ยิ่ง JavaScript engine ของมือถือถ้าโหลดหนักๆ ปรกติมันจะข้ามไปเลย
อีกอย่างการเข้ารหัสไว้มากมายไม่ว่า 10 ตัวหรือ 1000 คิดว่าค่าเท่ากันนะ
[spoiler/]
อีกจุดที่เห็นแปลกๆ คือ ท่านไม่ได้ handle error เอาไว้เลย output เวลา test ระวังผลลัพธ์มันจะ random นะ
ยิ่งพวกจุดที่ใช้ ajax ผ่าน server อย่างน้อยๆ ใช้พวก try catch เอาไว้น่าจะดีกว่าครับ
เรื่องเข้ารหัส : อันนี้เหตุผลเพราะต้องการไม่ให้คนที่มาหาผลประโยชน์มาดึงข้อมูลได้ง่ายเกินไปครับคนที่จะทำได้ต้องมีความรู้ระดับนึงซึ่งคนที่ทำได้ก็น่าจะมีสำนึกในเรื่องนี้อยู่ครับ เพราะถ้าไม่เข้าเลยหรือใช้ตัวที่เป็นพื้นฐานที่เปิดตัว debug ก็เห็นข้อมูลได้เหมือนกันคนก็ที่มาหาผลประโบชน์ก็หวานสิครับ
เรื่องช้าลง : อันนี้รับรู้อยู่แล้วครับหลังเขียนปกติผมทดสอบเวลาในการโปรเซสเสมอครับแต่จากการทำสอบข้อมูลเยอะๆมันไม่ได้ช้ามากนะครับ ส่วนที่มือถือรวนๆกันมันเท่าที่ทดลองและพอทราบว่าเป็นที่ canvas เนื่องจากเท่าที่ลองหาข้อมูลดูทั้งเรื่องจำนวน max pixel ที่แสดงผลของแต่ ฺBrowser ได้ไม่เท่ากันและ memoey ของแต่ละเครื่อง เลยทำให้เกิดหน้าขาวครับ ซึ่งเท่าที่ทดสอบไม่น่าเกี่ยวกับการถอดรหัส เพราะหลายๆท่านจะเจอว่าขนาดอักษร ใหญ่หรือกลางบางครั้งเป็นหน้าขาวแต่พอตัวเล็กกลับดูได้ซึ่งถ้าเป็นที่เข้ารหัสต้องดูไม่ได้ทุกครั้งครับนี่เป็นเฉพาะเมื่อต้องแสดงผลที่ใช้พื้นที่ canvas และ memory มากขึ้นครับและผมได้่ลองเขียนการแสดงผลแบบอื่นซึ่งใช้ memory มากขึ้นแต่แสดงผลได้ไวขึ้น loop น้อยลงแต่ผลลัพธ์แย่กว่าเดิมครับหลายๆคนหน้าขาวกันเยอะมากทั้งๆที่ตัวอักษรบางเรื่องไม่ได้เยอะมากเลยต้องกลับมาเขียนแบบนี้ปัจจุบันซึ่งปัญหาน้อยที่สุดครับ
เรื่อง handle error : ปกติผมทดสอบบนตัวที่ดู error ได้อยู่แล้วนะครับ ปกติเลยไม่ค่อยได้ใช้เลยลืมครับ
แต่ปกติ ajax jquery มันมีตัวเช็คอยู่แลัวนี่ครับเขียนเพิ่มไปมันน่าจะซ้ำซ้อนและไม่ได้ใช้ประโยชน์ไม่ใช่เหรอครับ
#30 : ผมคิดว่าน่าจะมีปัญหาที่แรมมากกว่าครับเพราะมีแค่ iPhone 6s, iPad air 2 และ iPad mini 4 เท่านั้นที่มีแรม 2GB นอกนั้นตั้งแต่ 1 GB ลงไป
เนื่องจากกระบวนการเกี่ยวกับ string นั้นจะทำการสร้าง char[] ขึ้นมาใหม่ตลอดหาก gc เคลียร์ไม่ทันก็อาจงานงอก
อย่างไรก็ดีผมคิดว่าน่าจะทำให้ทดสอบสำหรับดีบักไว้ซักหน้าโดยแสดงแต่ละขั้นตอนว่าผ่านไหมเช่นมีอยู่ 6 ขั้นตอนก็ไล่ไป 123456 แล้วถ้าผ่านก็ให้เปลี่ยนสีหรือจะทำยังไงก็ได้ให้รู้ว่าขั้นตอนนี้นั้นรันผ่านแล้วจะได้หาจุดที่เริ่มเกิดปัญหาจริงๆ ได้ตรงจุดมากกว่าครับ
ส่วนมากเกิดปัญหาตอนแสดงใน canvas อย่างเดียวเลยครับตามที่ผมตอบเรื่องช้าด้านบนนะครับ
ตอนนี้ในใจผมมีคิดแบ่งการแสดงผลจากหน้าเดียวยาวๆเป็นแสดงเป็นหน้าๆไปอยู่ครับซึ่งน่าจะแก้ปัญหาเรื่อง max canvas ได้มั้ง
แต่ถ้าซอยย่อยพวกหาผลประโยชน์มันอาจจะ copy ไปลงบนโปรแกรมแปลงรูปเป็นข้อความได้ง่ายเกินไปมั้ยหว่า
ขอบคุณทุกท่านที่มาแสดงความคิดเห็นและแนะนำนะครับ