wave
Sekson Oonnom
2,826
สังคมนักพัฒนาระบบ (Community)
Ajax Request กับ Progressing

อยากทราบว่า Ajax เนี่ยมันจะ return progressing ยังไง

เช่นผมส่ง id เป็น json string ไป 10 id ...  

{ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" } //json string

โดยฝั่ง php จะรับค่า แล้วก็เช็ค

function checkAjaxId() {
     $ajaxID = json_encode($_POST['id']);
     if($ajaxID!=null) {
          foreach($ajaxID as $id) {
               //do something
               if(do something) {
                   return true;
               } else {
                   return false;
               }
          }
     }
}

ประเด็นคือถ้าฝั่ง ajax โยนชุด id มาเยอะๆ เวลา php return กลับไปมันก็ควรจะ return ครั้งเดียว (หรือจริงๆ แล้วมัน return รัวๆ ได้ อันนี้ไม่ทราบจริงๆ)

มองง่ายๆ คล้ายๆ เวลาเราเขียนระบบส่ง email มันควรจะแจ้งบอก user ด้วยว่า ส่งเมลล์ที่ 1 2 3 .. 100 ผ่านไม๊นะคับ ไม่งั้น user ก็รอเหงือกแห้ง 

มันมีวิธีไหนบ้างที่สามารถ return หรือ เช็คได้ว่า แต่ละ id ที่ส่งเข้ามาเป็น true หรือ false โดยไม่ต้อง spam request ไปเรื่อยๆ

แบบระหว่าง loading ก็จะขึ้นว่า

ไอดี 1 success...
ไอดี 2 success...
ไอดี 3 error, please contact admin...
ไอดี 4 success...

ตอนนี้ที่ผมคิดได้คือ การ foreach loop ก่อนส่ง ajax request ไป เรื่อยๆ ถ้ามี 100 ไอดี ก็ส่งมัน 100 ครั้งนั้นแหละ  onnew15  ซึ่งผมมองว่ามันเป็นวิธีที่ผิด (น่าจะมีวิธีที่ง่ายกว่านี้ เหมือนวิธีนี้เป็นวิธีสิ้นคิดอะไรประมาณนั้น 555555555+) เลยแวะมาถามนะคับ

ปล. หากพิมพ์โค๊ดช่วงไหนผิดขออภัยนะครับ แบบว่าเขียนสดๆ ไม่ได้ลองรัน อยากจะถามไปประดับความรู้ไว้นะครับ
ปล2. ผมไปหาใน stackoverflow เค้าแนะนำให้ใช้ xmlhttprequest บอกเลยไม่เคยศึกษา 555+
ปล3. ขอบคุณทุกท่านที่สละเวลามาเพิ่มความรู้ให้ครับ เด๋วตอบแทนให้ด้วยแผล่บๆ

1 ความคิดเห็น

  • มานพ กองอุ่น

ปกติ PHP จะ return ครั้งเดียวครับ