postback คืออะไร


142

ฉันกำลังมุ่งหน้าไปสู่การพัฒนาเว็บไซต์และได้เห็นคำว่าpostbackโยนไปมา มาจากพื้นหลังที่ไม่ใช่บนเว็บนักพัฒนาเว็บใหม่ต้องรู้อะไรบ้างเกี่ยวกับ postbacks (เช่นพวกเขาคืออะไรและเกิดขึ้นเมื่อใด)

ข้อมูลเพิ่มเติมใด ๆ ที่คุณต้องการแบ่งปันเพื่อช่วยให้มือใหม่ในโลกเว็บทราบว่าการโพสต์กลับจะได้รับการชื่นชมอย่างมากที่สุด

คำตอบ:


178

ต่อไปนี้มีวัตถุประสงค์เพื่อเริ่มต้นเพื่อ ASP.Net ...

มันเกิดขึ้นเมื่อไหร่?

postback มาจากเบราว์เซอร์ไคลเอ็นต์ โดยทั่วไปแล้วหนึ่งในตัวควบคุมในหน้าจะถูกควบคุมโดยผู้ใช้ (ปุ่มคลิกหรือเปลี่ยนแบบเลื่อนลง ฯลฯ ) และการควบคุมนี้จะเริ่มต้น postback สถานะของการควบคุมนี้รวมถึงการควบคุมอื่น ๆ ทั้งหมดในหน้า (ที่รู้จักกันในชื่อ View State) โพสต์กลับไปที่เว็บเซิร์ฟเวอร์

เกิดอะไรขึ้น?

โดยทั่วไปการโพสต์แบ็คจะทำให้เว็บเซิร์ฟเวอร์สร้างอินสแตนซ์ของรหัสที่อยู่เบื้องหลังคลาสของเพจที่เริ่มต้นการโพสต์กลับ วัตถุหน้านี้จะถูกดำเนินการภายในรอบระยะเวลาหน้าปกติซึ่งมีความแตกต่างเล็กน้อย (ดูด้านล่าง) หากคุณไม่เปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่นโดยเฉพาะในช่วงระยะเวลาหนึ่งของรอบหน้าผลลัพธ์สุดท้ายของการโพสต์กลับจะเป็นหน้าเดียวกันที่แสดงให้ผู้ใช้เห็นอีกครั้ง

ทำไมมันเกิดขึ้น

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

บางสิ่งสำหรับผู้เริ่มต้นที่ควรทราบคือ ...

  • สถานะของการควบคุมในหน้าหลังการโพสต์มีอยู่ในบริบท สิ่งนี้จะช่วยให้คุณสามารถควบคุมการควบคุมหน้าหรือเปลี่ยนเส้นทางไปยังหน้าอื่นตามข้อมูลที่มี
  • การควบคุมบนเว็บฟอร์มมีเหตุการณ์และดังนั้นตัวจัดการเหตุการณ์ก็เหมือนกับตัวควบคุมอื่น ๆ ส่วนเริ่มต้นของวงจรชีวิตของหน้าจะดำเนินการก่อนที่จะจัดการเหตุการณ์ของการควบคุมที่ทำให้เกิดการโพสต์กลับ ดังนั้นรหัสใน Init และ Load event handler ของหน้าจะทำงานก่อนรหัสในตัวจัดการเหตุการณ์สำหรับปุ่มที่ผู้ใช้คลิก
  • ค่าของคุณสมบัติ“ Page.IsPostBack” จะถูกตั้งค่าเป็น“ true” เมื่อหน้ากำลังดำเนินการหลังจาก postback และ“ false”
  • เทคโนโลยีอย่าง Ajax และ MVC ได้เปลี่ยนวิธีการทำงานของ postbacks

2
การแก้ไขเล็กน้อย - "สถานะของการควบคุมนี้รวมถึงการควบคุมอื่น ๆ ทั้งหมดในหน้า (หรือที่รู้จักในชื่อ View View) จะโพสต์ย้อนกลับ" ข้อมูลนี้เป็นข้อมูลหลังการขายจริง ข้อมูล Viewstate จะโพสต์กลับด้วย แต่นั่นคือสถานะของการควบคุมครั้งล่าสุดที่พวกเขาอยู่บนเซิร์ฟเวอร์
Simon ให้

หมายเหตุ postback นั้นใช้กับทุกแพลตฟอร์ม. NET ไม่ใช่แค่ ASP.NET
JNF

1
"ในการประมวลผลการตอบสนองของผู้ใช้ทำให้สถานะแอปพลิเคชันเปลี่ยนหรือย้ายไปยังหน้าอื่นคุณต้องได้รับโค้ดบางอย่างเพื่อเรียกใช้งานบนเว็บเซิร์ฟเวอร์" นี่เป็นสิ่งที่ทำให้เข้าใจผิดเล็กน้อย คุณไม่จำเป็นต้องใช้ 'รหัสเพื่อดำเนินการบนเว็บเซิร์ฟเวอร์' เพื่อทำสิ่งเหล่านี้ เมื่อเป็นไปได้จะเป็นการดีกว่าที่จะประมวลผลอินพุตของผู้ใช้บนไคลเอ็นต์ หนึ่งในสิ่งที่สำคัญที่สุดที่จะทราบเกี่ยวกับการโพสต์หลังเป็นวิธีการ / เมื่อไม่ทำพวกเขา; เช่นเมื่อต้องดูแลสิ่งที่ลูกค้าหรือผ่านทางอาแจ็กซ์ ฯลฯ
Hawkeye Parker

1
เห็นด้วย @HawkeyeParker ฉันเขียนสิ่งนี้กลับมาเมื่อสิ่งที่ฉันรู้ทั้งหมดคือสถาปัตยกรรมเว็บฟอร์ม สิ่งต่าง ๆ มาไกลแน่นอนตั้งแต่นั้นมา! คำอธิบายทั้งหมดของฉันไม่ได้คำนึงถึงอาแจ็กซ์เลย
Andy McCl เล็บ

27

จากวิกิพีเดีย :

Postback เป็นการดำเนินการโดยเว็บเพจแบบโต้ตอบเมื่อเพจทั้งหมดและเนื้อหาถูกส่งไปยังเซิร์ฟเวอร์เพื่อประมวลผลข้อมูลบางส่วนแล้วเซิร์ฟเวอร์จะโพสต์เพจเดียวกันกลับไปที่เบราว์เซอร์


@Gal Norwegian: คุณไม่คิดว่ามันจะเกิดขึ้นเฉพาะเมื่อมีข้อผิดพลาดในการตรวจสอบความถูกต้องเกิดขึ้นเพื่อนำเสนอหน้าเดียวกับผลลัพธ์
Shirgill Farhan

21

การโพสต์เกิดขึ้นเมื่อหน้าเว็บโพสต์ข้อมูลกลับไปที่สคริปต์ / dll เดียวกัน / อะไรก็ตามที่สร้างหน้าขึ้นมาตั้งแต่แรก

ตัวอย่างใน C # (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;

20

สิ่งที่สำคัญที่สุดที่คุณต้องรู้ในฐานะนักพัฒนาเว็บคือการไม่ จำกัด สถานะระหว่างการโพสต์ มีวิธีในการรักษาสถานะเช่นคอลเลกชันเซสชันหรือ Viewstate ใน ASP.NET แต่ตามกฎง่ายๆเขียนโปรแกรมของคุณที่คุณสามารถสร้างสถานะของคุณในทุก ๆ postback

นี่อาจเป็นความแตกต่างที่ใหญ่ที่สุดระหว่างการเขียนโปรแกรมบนเดสก์ท็อปและโปรแกรมประยุกต์บนเว็บและใช้เวลาหลายเดือนในการเรียนรู้จนถึงจุดที่ฉันกำลังเขียนวิธีนี้


2
ใส่กัน ไม่มีอะไรถูกบันทึกยกเว้นในเซสชั่นและมุมมอง
ไมล์

1
จุดที่ดี! ใช่นี้ดูเหมือนว่าบางสิ่งบางอย่างที่ใช้เวลาสักครู่เพื่อห่อหุ้มสมองเมื่อมาจากโดเมนการเขียนโปรแกรมของลูกค้า
Scott Saad

10

การพัฒนาเว็บโดยทั่วไปเกี่ยวข้องกับหน้า html ที่เก็บฟอร์ม ( <form>แท็ก) แบบฟอร์มโพสต์ไปยัง URL คุณสามารถตั้งค่าแบบฟอร์มที่กำหนดให้โพสต์ไปยัง URL ที่คุณต้องการ postbackคือเมื่อโพสต์แบบฟอร์มกลับไปเป็นของตัวเองหน้า / url

คำนี้มีความสำคัญเป็นพิเศษสำหรับนักพัฒนาASP.Netเนื่องจากเป็นกลไกหลักที่ขับเคลื่อนพฤติกรรมจำนวนมากสำหรับหน้าเว็บโดยเฉพาะ 'การจัดการเหตุการณ์' เพจ ASP.Net มีรูปแบบเซิร์ฟเวอร์เดียวที่เกือบจะโพสต์กลับไปที่ตัวเองเกือบทุกครั้งและโพสต์เหล่านี้หลังเรียกใช้การดำเนินการบนเซิร์ฟเวอร์ของสิ่งที่เรียกว่า Page Lifecycle


6

คำนี้ยังใช้ในการพัฒนาเว็บแอปพลิเคชันเมื่อโต้ตอบกับ API บริการเว็บบุคคลที่สาม

API จำนวนมากต้องการทั้งการรวมแบบโต้ตอบและไม่โต้ตอบ โดยปกติแล้วส่วนการโต้ตอบจะใช้การเปลี่ยนเส้นทาง (ไซต์ 1 เปลี่ยนเส้นทางผู้ใช้ไปยังไซต์ 2 ซึ่งพวกเขาลงชื่อเข้าใช้และถูกเปลี่ยนเส้นทางกลับไป) ส่วนที่ไม่มีการโต้ตอบนั้นใช้ 'postback' หรือ HTTP POST จากเซิร์ฟเวอร์ของไซต์ 2 ไปยังเซิร์ฟเวอร์ของไซต์ 1


5

เมื่อสคริปต์สร้างฟอร์ม html และ http การกระทำของฟอร์มนั้นกลับไปที่ฟอร์มเดียวกัน


4

Postback นั้นสำคัญเมื่อมีการส่งแบบฟอร์มไปยังหน้าหรือสคริปต์เดียวกัน (.php .asp ฯลฯ ) ในขณะที่คุณกำลังดำเนินการเพื่อเข้าถึงข้อมูลแทนที่จะส่งคุณไปที่หน้าใหม่

ตัวอย่างอาจเป็นหน้าในฟอรัม (viewpage.php) ซึ่งคุณส่งความคิดเห็นและส่งไปยังหน้าเดียวกัน (viewpage.php) จากนั้นคุณจะเห็นมันเมื่อมีการเพิ่มเนื้อหาใหม่

ดู: http://en.wikipedia.org/wiki/Postback


3

การโพสต์กลับเป็นสิ่งที่ทำให้เพจจากเว็บเบราว์เซอร์ของไคลเอ็นต์ถูกส่งกลับไปยังเซิร์ฟเวอร์

มีข้อมูลมากมายออกไปค้นหา google สำหรับ postbacks

ส่วนใหญ่แล้วการควบคุม ASP จะทำให้เกิดการโพสต์ย้อนกลับ (ปุ่ม / ลิงค์คลิก) แต่บางอย่างก็ไม่ได้จนกว่าคุณจะบอกให้พวกเขา (ช่องทำเครื่องหมาย / combobox)


3

Postback หมายถึงรูปแบบ HTML ฟอร์ม HTML มี 2 วิธีคือ GET และ POST วิธีการเหล่านี้กำหนดวิธีการส่งข้อมูลจากลูกค้าผ่านแบบฟอร์มไปยังเซิร์ฟเวอร์ Postback คือการกระทำของ POSTing กลับไปที่หน้าการส่ง ในสาระสำคัญมันเป็นวงจรที่สมบูรณ์จากลูกค้าไปยังเซิร์ฟเวอร์และกลับมาอีกครั้ง


2

แต่คำถามก็ตอบถูกต้องด้านบน แต่ต้องการแบ่งปันความรู้ของฉัน โดยทั่วไปแล้วการโพสต์แบ็คเป็นคุณสมบัติที่เราสามารถใช้ในขณะที่ทำงานบางอย่างที่ต้องการให้เราจัดการสถานะของหน้าเว็บนั่นคือเราได้ไล่เหตุการณ์บางอย่างเช่นคลิกปุ่มหรือถ้าเรารีเฟรชหน้าของเรา เมื่อหน้าของเราโหลดเป็นครั้งแรกนั่นคือถ้าเราได้รีเฟรชหน้าของเราในเวลานั้นคุณสมบัติหลังการขายเป็นเท็จและหลังจากนั้นมันจะกลายเป็นจริง

if(!ispostback)
{
 // do some task here
}
else
{
 //do another task here
}

http://happycodng.blogspot.in/2013/09/concept-of-postback-in.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.