|
|
|
ขอถามเรื่องการดึงข้อมูลจาก sql โดยใช้ ajax ครับ |
|
|
|
|
|
|
|
การดึงข้อมุล ก็มีหลากหลายวิธีครับ เช่น
----------------------------------------------------
1) Web Client <----> Web Server ด้วย Ajax Request/Response
- Interval repeat มีผลเสียอยู่บเ้าง ถ้าโหลดข้อมูลเยอะๆ และมี client connect มีเยอะแล้ว Interval เท่าไหร่ดี ถึงเรียกว่า Real time
- ตอนครบเวลา Interval ก็จะมีการดึง data อีกรอบทุกเครื่อง สมมุติ 10,000 record มี Client สัก 100 จะทำให้ CPU ขึ้นได้
<<<<อาจจะแก้ไขโดย>>>>
i) GetData.php อาจจะมี filter อะไรเพิ่มเข้ามา เช่น Countrycode=11
ii) Server script getData.php --> JSON Cache ทำการ Query ไว้สำหรับ Data มาใหม่ (เมื่อ Client connect มาก็เอา result ไปใช้เลย ไม่ต้องทำการ query ใหม่ ทำให้สามารถลดโหลดได้)
iii) เก็บจำนวน record ไว้หากมี request เข้ามา server script ทำงานแล้วมีข้อมูลเท่าเดิมไม่ต้องส่ง data กลับไป อาจจะส่งแค่ message ซึ่งอาจจะใช้เงื่อนไขเข้าช่วย เช่น
if(ResultMessage == 'NewUpdateData'){
//
}
if(ResultMessage == 'NoNewData'){
//
}
if(ResultMessage == 'ZeroData'){
//
}
2) ดึงข้อมูลแบบ Web Seocket ระหว่าง Web Client <---> Web Server
- ก็เชื่อมต่อตลอดเวลา
- ส่งเฉพาะข้อมูลใหม่ไปยัง Client
3) Web Server Pushing new update data to client
- ให้ Server เป็นตัวส่งข้อมูล ไปยัง client เมื่อมีการ Insert ข้อมูลเข้ามา
- ที่เห็นใช้ทั่วไปคือ Publish/subscribe , ActiveMQ หรือจำพวก message broker
- ส่งเฉพาะข้อมูลใหม่มาต่อท้ายของเดิม แล้ว reload table view แล้วใช้พวก json merge ให้ข้อมูลต่อกัน
|
ประวัติการแก้ไข 2017-07-21 19:07:55
|
|
|
|
Date :
2017-07-21 19:07:12 |
By :
ccjpn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณสำหรับแนวทางครับ
|
|
|
|
|
Date :
2017-07-22 10:01:27 |
By :
natchaphon_ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|