ยากทำ ระบบ แจ้งเตือน แบบ realtime HomeForumยากทำ ระบบ แจ้งเตือน แบบ realtime theerayut.lukphadungpon@combipack.co.th ขอแนวคิดและสเตปการทำงาน การแจ้งเตือนแบบ realtime ครับ คือ ว่า เมื่อมีการอับเดทข้อมูลลงฐานข้อมูล จะให้ระบบ แจ้งเตือนเราแบบอัตโนมัติ แบบว่าเล่นๆคอมอยู่ แล้วมี แมสเซส หรอ popup บอกว่ามีการอับเดทข้อมูลของฐานข้อมูล (ยากไหมครับ ผมท้อมาก อยากจะออกจากงานไห้มันรู้แล้วรู้รอดไป) กรกฎ วิริยะ 555++ ถ้าบนเว็บทำไม่ได้ครับ เหตุผล ถ้าจะให้มันทำงานเพื่อแจ้งเตือนตลอดเวลา เราจะต้องเปิด Browser ทิ้งไว้ หรือไม่ก็ให้ Server ทำงานตลอดเวลา วิธีที่สะดวกกว่าก็ใช้บริการที่มีอยู่แล้ว เช่น Google Calendar หรือ Application ที่ทำงานบน Windows ครับ ถึงจะแจ้งเตือนทาง Taskbar ได้ ซึ่งถ้าเป็นการคอยตรวจสอบว่าข้อมูลบน Server มีการอัปเดทหรือไม่ ก็อาจต้องพึ่ง Trigger บน Mysql แหละครับ หรือ จะใช้วิธีตรวจสอบเอาเองก้ได้ว่า ถ้าเมื่อใดมีการเปลี่ยนแปลงให้ส่งเมล์ (เช่นเขียนคำสั่งหรือฟังก์ชั่นสำหรับอัปเดทฐานข้อมูลโดยเฉพาะ โดยให้มีการอัปเดทผ่านฟังก์ชั่นนี้ทุกครั้ง ก็จะตรวจสอบได้ว่ามีการเปลี่ยนแปลงข้อมูล) จริงๆแล้วผมไม่รู้ว่าวัตถุประสงค์ที่ต้องการคืออะไร (แบบละเอียด) ก็เลยตอบคำถามตามที่ถามมาครับ (อาจมีวิธีอื่น ซึ่งก็แล้วแต่วัตถุประสงค์ที่ต้องการ) theerayut.lukphadungpon@combipack.co.th คือประมาณว่า มีคนบันทึกออเด้อสินค้าเข้ามา จะแจ้งไห้ จัดซื้อ ทราบโดยอัตโนมัติ ผ่านทางระบบ โดยที่เค้าเล่นคอม ก้อมี อาไรก้อได้เด้งใส่หน้าเค้า ไห้เค้ารู้ และต้องบังคับไห้เค้าตกลง ถึงจะหายไปอ่ะครับ โจทย์ มาแบบนี้ สมมุติ ถ้าเป็นเวป ทำได้ไหมครับ คือเค้าเปิดเวปเราไว้ตลอด เวลา ฐานข้อมูลอับเดท ไห้ขึ้นป็อป อับ และ เค้าต้องตกลง ถ้าไม่ตกลง ก้อจะขึ้นไหม่ตลอด กรกฎ วิริยะ ถ้าเป็นเว็บ คำตอบคือ ได้ แต่ไม่ค่อยจะสมบูรณ์ครับ 1.เราสามารถใช้ Ajax เพื่อตรวจสอบ order ใหม่ได้ตลอดเวลา เมื่อพบ order ก็แสดงข้อความเตือน 2.ถึงแม้ข้อ 1 จะสามารถตรวจสอบ order ได้ แต่การแจ้งเตือนของ Browser ก็จำกัดอยู่บนหน้าเว็บเท่านั้น ซึ่ง อาจมองไม่เห็น หรือ อาจไม่สามารถแจ้งเตือนให้เห็นได้ หาก ย่อบราวเซอร์ไว้ หรือ อยู่ที่หน้าเพจอื่นๆ นอกจากนี้ การทำงานของ Browser ด้วย Ajax อาจค้างเป็นระยะๆ ทำให้ต้องมีการรีเฟรชสม่ำเสมอ (การใช้งานตามปกติ เรามักจะไม่ได้ิยู่หน้าใดหน้าหนึ่งนานๆ ทำให้ไม่ค่อยเห็นผลนี้) แล้วก็ลืมไปได้เลยครับ หากต้องการ การแจ้งเตือนที่ต้องบังคับให้กด นอกจากจะใช้วิธีว่า ถ้ามี order ใหม่ให้ส่งอีเมล์ ซึ่งโปรแกรมอีเมล์อาจสามารถแสดงคำเตือนบน Taskbar ได้ theerayut.lukphadungpon@combipack.co.th ขอบคุณมาก ครับ หึหึ keartkumpon@gmail.com น่าจะได้นะ ใช้ javascript ค่อยๆ ส่ง เข้าไป...เอ..... คนถามนี่มา ลองภูมิหรือเปล่า??? ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
เหตุผล
ถ้าจะให้มันทำงานเพื่อแจ้งเตือนตลอดเวลา เราจะต้องเปิด Browser ทิ้งไว้ หรือไม่ก็ให้ Server ทำงานตลอดเวลา
วิธีที่สะดวกกว่าก็ใช้บริการที่มีอยู่แล้ว เช่น Google Calendar หรือ Application ที่ทำงานบน Windows ครับ ถึงจะแจ้งเตือนทาง Taskbar ได้
ซึ่งถ้าเป็นการคอยตรวจสอบว่าข้อมูลบน Server มีการอัปเดทหรือไม่ ก็อาจต้องพึ่ง Trigger บน Mysql แหละครับ หรือ จะใช้วิธีตรวจสอบเอาเองก้ได้ว่า ถ้าเมื่อใดมีการเปลี่ยนแปลงให้ส่งเมล์ (เช่นเขียนคำสั่งหรือฟังก์ชั่นสำหรับอัปเดทฐานข้อมูลโดยเฉพาะ โดยให้มีการอัปเดทผ่านฟังก์ชั่นนี้ทุกครั้ง ก็จะตรวจสอบได้ว่ามีการเปลี่ยนแปลงข้อมูล)
จริงๆแล้วผมไม่รู้ว่าวัตถุประสงค์ที่ต้องการคืออะไร (แบบละเอียด) ก็เลยตอบคำถามตามที่ถามมาครับ (อาจมีวิธีอื่น ซึ่งก็แล้วแต่วัตถุประสงค์ที่ต้องการ)
สมมุติ ถ้าเป็นเวป ทำได้ไหมครับ คือเค้าเปิดเวปเราไว้ตลอด เวลา ฐานข้อมูลอับเดท ไห้ขึ้นป็อป อับ และ เค้าต้องตกลง ถ้าไม่ตกลง ก้อจะขึ้นไหม่ตลอด
1.เราสามารถใช้ Ajax เพื่อตรวจสอบ order ใหม่ได้ตลอดเวลา เมื่อพบ order ก็แสดงข้อความเตือน
2.ถึงแม้ข้อ 1 จะสามารถตรวจสอบ order ได้ แต่การแจ้งเตือนของ Browser ก็จำกัดอยู่บนหน้าเว็บเท่านั้น ซึ่ง อาจมองไม่เห็น หรือ อาจไม่สามารถแจ้งเตือนให้เห็นได้ หาก ย่อบราวเซอร์ไว้ หรือ อยู่ที่หน้าเพจอื่นๆ
นอกจากนี้ การทำงานของ Browser ด้วย Ajax อาจค้างเป็นระยะๆ ทำให้ต้องมีการรีเฟรชสม่ำเสมอ (การใช้งานตามปกติ เรามักจะไม่ได้ิยู่หน้าใดหน้าหนึ่งนานๆ ทำให้ไม่ค่อยเห็นผลนี้) แล้วก็ลืมไปได้เลยครับ หากต้องการ การแจ้งเตือนที่ต้องบังคับให้กด นอกจากจะใช้วิธีว่า ถ้ามี order ใหม่ให้ส่งอีเมล์ ซึ่งโปรแกรมอีเมล์อาจสามารถแสดงคำเตือนบน Taskbar ได้