दिलचस्प पोस्ट
कैसे MySQL में AUTO_INCREMENT रीसेट करें? प्राकृतिक क्रमबद्ध MySQL में jQuery के AJAX सफलता कॉलबैक फ़ंक्शन परिभाषा चलती औसत की गणना WPF डाटाबेसिंग: मैं "मूल" डेटा संदर्भ का उपयोग कैसे करूं? क्या उद्देश्य-सी और कोको के लेखन के दौरान उपयोग किए जाने वाले सर्वोत्तम प्रथाएं हैं? एक NSMutableArray ivar में आइटम नहीं जोड़ सकते सी ++ में एक संदर्भ चर क्या है? Homebrew सूत्र के विशिष्ट संस्करण स्थापित करें? एंड्रॉइड में एक स्ट्रिंग और सबस्क्रिप्ट वाईफ़ाई कनेक्ट-डिस्कनेक्ट करें श्रोता मैं SQLPLUS का उपयोग करते हुए CSV स्वरूपित फ़ाइल को कैसे स्पूल कर सकता हूं? jQuery .add () / .ajax () संलग्न HTML में जावास्क्रिप्ट क्रियान्वित नहीं करने के बाद किसी मौजूदा कॉलम में एक पहचान जोड़ना मेरे दृश्य के फ्रेम को मैन्युअल रूप से viewDidLoad में क्यों सेट किया जा रहा है?

एक पोस्टबैक क्या है?

एक पोस्टबैक के लिए मैंने जो सबसे अच्छा विवरण पाया है वह विकी से है।

एक पोस्टबैक उसी पृष्ठ पर एक HTTP पोस्ट है, जिस पर फ़ॉर्म चालू है

हालांकि यह आलेख बताता है कि एएसपी में एक दूसरे पृष्ठ की आवश्यकता क्यों थी, लेकिन अब इसे एएसपी.नेट में जरूरी नहीं है, यह बहुत अधिक विवरण या पृष्ठभूमि नहीं देता है। मैं पोस्टबैक के बारे में सूचनाओं के बारे में एक अजीब बात कर रहा हूं। "मैं कैसे एक घर को साफ कर सकता हूं" इस सरल पेज की 900 पृष्ठ की किताब से संबोधित किया जा सकता है। मुझे 900 पृष्ठों की जरूरत नहीं है, लेकिन विवरण कृपया मुझे एएसपीएनईटी जीवन चक्र के लिए एक अच्छा सा ट्यूटोरियल मिला है, लेकिन यह पोस्टबैक (अन्य बातों के बीच) पर गंभीरता से बोलता है।

मैं उन डेवलपर्स को देख रहा हूं जो पहले एनएटी से पहले थे और वास्तव में इन प्रकार की चीज़ों को स्वीकार नहीं किया। पुस्तकों और हाइपरलिंक्स आपके उत्तर के लिए उचित उत्तर या अतिरिक्त हैं।

वेब के समाधान से एकत्रित समाधान "एक पोस्टबैक क्या है?"

अभी तक मैंने सही जवाब बार-बार इशारा किया है, और लगभग सब लोग शर्मीले आ गए हैं कि मैं क्या सोचता हूं कि मैं खुद को चिह्नित करता हूं।

आइए बुनियादी बातों से शुरू करें:

एक HTTP अनुरोध किसी भी HTTP verbs हो सकता है , लेकिन प्राथमिक दो लोग उपयोग करते हैं GET और POST हैं। खैर, वे दो प्रोग्रामर हैं जो सबसे अधिक बार उपयोग करते हैं। अन्य सभी का कुछ उद्देश्य है, यदि वे सर्वर पर कार्यान्वित कर रहे हैं जब आप सर्वर को सूचना भेजते हैं, तो आप ऐसा यूआरएल (एक पृष्ठ का अनुरोध करने के लिए) या अनुरोध के शरीर (उदाहरण के लिए, पोस्ट, पुट, डेलेइट) के भीतर कर सकते हैं।

अब आप टिप्पणी करेंगे (मुझे यकीन है) कि GET अनुरोध में यूआरएल अक्सर डेटा शामिल है, और यह सच है, लेकिन डब्लू 3 सी के अनुसार, आपको राज्य को बदलने के लिए जीईटी का उपयोग नहीं करना चाहिए, और फिर भी हम अक्सर करते हैं यह एक हैक की तरह है जिसे हम सभी को एक वास्तविक उपयोग कहते हैं, और हैक नहीं। चाहे वह एक हैक या एक वास्तविक कार्यान्वयन विवरण बनाता है, मैं आपको छोड़ देता हूं।

इसलिए जब आप पोस्ट तत्वों (अब दूसरों को छोड़कर, आप इसे यहां से समझ सकते हैं) को फ़ॉर्म तत्वों के साथ भेजते हैं, तो आप कुछ तत्वों को वापस भेज रहे हैं उन तत्वों को कैसे परिभाषित किया जाता है, आपके और पर्यावरण पर निर्भर है। आप एक ऐसे सर्वर पर पोस्ट कर सकते हैं जिसमें शरीर में, या XML के साथ या फॉर्म फ़ील्ड के साथ JSON तत्व के साथ पोस्ट किया जा सकता है । आम तौर पर हम HTML के शरीर में एक FORM तत्व से पोस्ट करते हैं।

अब हर कोई कहता है, "ओह, एक पोस्टबैक पृष्ठ के लिए एक अनुरोध है।" लेकिन, यह सच नहीं है एक पोस्टबैक है जब आप डाक से -> वापस सर्वर पर डेटा भेजते हैं मैं यह कहता हूं क्योंकि GET अनुरोध और पोस्ट अनुरोध के बीच का अंतर यह है कि यदि डेटा शरीर में शामिल किया गया है (और क्रिया का उपयोग किया जाता है, लेकिन क्लाइंट आमतौर पर यह जानता है कि उसके साथ कैसे व्यवहार करना है)। आप पेज पर पहली बार पृष्ठ पर जा सकते हैं , और वास्तव में एएसपी.नेट में लाइब्रेरी में ऐसा करने के लिए उपकरण हैं। आपके पास निश्चित रूप से सर्वर से एक डेस्कटॉप क्लाइंट पोस्ट डेटा हो सकता है (ट्विटर के बारे में सोचें) सर्वर से किसी भी वेबपृष्ठ को प्रदर्शित किए बिना (ठीक है, तो संभव है कि कलरव यहाँ एक उदाहरण के लिए उपयोग करने वाली सबसे अच्छी अवधारणा नहीं है, लेकिन मैं यह स्पष्ट करना चाहता हूं कि आप एक ग्राहक का उपयोग कर सकते हैं जो वेबपेज नहीं दिखाता है, इसलिए कोई भी अनुरोध जरूरी नहीं है)।

तो वास्तव में आपको "पोस्टबैक" में वहां क्या पढ़ना चाहिए "प्रसंस्करण के लिए सर्वर पर डेटा वापस भेज रहा हूं"। यह माना जाता है कि आपने उपयोगकर्ता को <form> तत्व को दिखाने के लिए GET के साथ आरंभ में पृष्ठ को पुनः प्राप्त किया है, जिसमें उनके साथ इंटरैक्ट करने के लिए फ़ील्ड है, और अंत में आप डेटा वापस भेज रहे हैं लेकिन मुझे आशा है कि आप देख सकते हैं कि उस क्रम में होना जरूरी नहीं है

तो यहाँ पर विचार करने के लिए कुछ और है:

क्या होगा यदि आपने उपयोगकर्ता को <input> s और not <form> एक समूह के साथ एक पृष्ठ दिया है, लेकिन इसके बजाय, एक बटन को जावास्क्रिप्ट में वाइन किया गया है, उन सभी को <input> s के साथ &value-n= और उन्हें GET के रूप में भेजें ? क्या एक ही बात है, लेकिन अनुरोध के लिए केवल GET का उपयोग करने की उस अवधारणा का उल्लंघन करती है। (संभवतः) आगामी चर्चा मुझे प्रोत्साहित करने के लिए प्रोत्साहित करती है कि जीईटी का कोई साइड इफेक्ट नहीं होना चाहिए (कोई अपडेट करने वाले मान नहीं)

ऐसा कैसे होता है कि आप किसी Google खोज के लिए किसी लिंक को भेज सकते हैं, उदाहरण के लिए इसलिए हमें हमेशा डेटा प्राप्त करने के लिए सर्वर पर वापस पोस्ट करना पड़ता है।

उम्मीद है की यह मदद करेगा। चियर्स

एएसपी। नेट पृष्ठ देखें, जब सर्वर के अनुरोधों पर कोई प्रभाव पड़ता है तो क्या होता है, इस बारे में एक सामान्य सामान्य जानकारी के लिए MSDN पर लाइफ साइकल अवलोकन ।

एक पोस्टबैक किसी ऐसे पृष्ठ के लिए कोई अनुरोध है जो पहले अनुरोध नहीं है। एक पोस्टबैक हमेशा एक उपयोगकर्ता की कार्रवाई के उत्तर में होगा (एक बटन, ऑटोपोस्टबैक नियंत्रण या अजाक्स द्वारा सबसे ज्यादा ट्रिगर किया गया)

पोस्टबैक: एएसपी.नेट के एक राज्य के मुखबिर के पीछे वेब / HTTP के असली स्टेटलेस प्रकृति को छिपाने के लिए एक तकनीक का हिस्सा इसके परिणाम जटिल कोड (आईसपोस्टबैक, …) को पृष्ठ जीवन चक्र, कई अलग-अलग घटनाओं, … और कई समस्याओं (व्यूस्टेट आकार, वेब-कृषि चिपचिपाहट, राज्य सर्वर, ब्राउज़र चेतावनियों को समझना मुश्किल है (पीआरजी पैटर्न का उपयोग नहीं करना) , …)

इसके बजाय एएसपी.नेट एमवीसी देखें।

एक पोस्ट वापस ग्राहक (ब्राउज़र) से सर्वर पर दौर की यात्रा है और फिर क्लाइंट को वापस।

यह आपको सर्वर पर एस्प इंजन के माध्यम से जाने और अद्यतन करने के लिए किसी भी डायनामिक सामग्री को सक्षम करने के लिए पृष्ठ को सक्षम करता है।

यहाँ एक अच्छा स्पष्टीकरण है

एएसपी.नेट आपके एएसपी.नेट नियंत्रण की स्थिति को बनाए रखने के लिए एक नई अवधारणा (अच्छी तरह से, एएसपी की तुलना में नया … यह अब पुरानी है) का उपयोग करता है। इसका क्या मतलब है? संक्षेप में, यदि आप किसी पाठ बॉक्स में कुछ लिखते हैं या किसी ड्रॉपडाउन सूची से एक ड्रॉपडाउन का चयन करते हैं, तो जब आप किसी बटन पर क्लिक करते हैं तो ये मान याद रखेंगे। पुराने एएसपी आपको इन मूल्यों को याद करने के लिए कोड लिखने के लिए मजबूर कर देगा।

यह उपयोगी है जब उपयोगकर्ता को त्रुटि मिलती है। प्रत्येक वेब नियंत्रण को पुनः आबाद करने के लिए याद रखने से संबंधित प्रोग्रामर के बजाय, एएसपीएनएल व्यूस्टेट आपके लिए यह स्वचालित रूप से करता है यह भी उपयोगी है क्योंकि अब पीछे के कोड आपके एएसपी.नेट वेब फॉर्म पर इन नियंत्रणों के मूल्यों का उपयोग कर सकते हैं intellisense के साथ।

उसी पृष्ठ पर पोस्ट करने के लिए, हाँ, एक "सबमिट करें" बटन पृष्ठ के पीछे कोड पर ईवेंट हैंडलर पर पोस्ट किया जाएगा। अगर जरूरत पड़ने पर एक अलग पृष्ठ पर पुनर्निर्देशित करने के लिए कोड में ईवेंट हैंडलर (या अपने पृष्ठ पर त्रुटि संदेश की सेवा या आप को जो कुछ भी करना पड़ सकता है) पर निर्भर है

पोस्टबैक की विकिपीडिया परिभाषा बहुत अच्छी है, लेकिन मैं निम्नलिखित को जोड़ूंगा : एक पोस्टबैक उसी पृष्ठ पर एक बाद की HTTP पोस्ट है, जिस पर फ़ॉर्म चालू है।

अगर मेरे पास एक फॉर्म वाला एक पृष्ठ है और मेरा सबमिट बटन होने से ब्राउज़र को किसी अन्य पेज पर प्रारम्भ करने के लिए प्रपत्र पर प्रोसेस करना होता है, तो इसके बजाय सबमिट बटन को वर्तमान पेज को रीफ्रेश करना पड़ता है (और मान्य करने के लिए / पृष्ठ, शायद), तो सबमिट बटन को वर्तमान पृष्ठ पर वापस पोस्ट किया जाता है।

पोस्टबैक या तो पूर्ण हो सकते हैं (पूरे पेज को ताज़ा करें) या आंशिक (एक ऐसे मामले में जहां AJAX कार्यरत है) एक आंशिक पृष्ठ पोस्टबैक पृष्ठ का केवल एक हिस्सा फिर से प्रस्तुत करेगा (जैसे एक एकल ड्रॉप-डाउन सूची, एक तालिका आदि)।

पुराने एचटीएमएल में, वेबपेज पर अद्यतन कुछ करने का एकमात्र तरीका क्लाइंट ब्राउज़र पर एक नया वेबपेज भेजना है। ऐसा एएसपी क्या करता था, आपको यह करने के लिए ग्राहक को एक अद्यतन पृष्ठ भेजने के लिए "पोस्टबैक" कॉल करना होगा।

एएसपी। नेट में, आपको पूरे वेबपेज को फिर से भेजने की जरूरत नहीं है। अब आप AJAX, या अन्य एएसपी.NET नियंत्रणों का उपयोग कर सकते हैं कि आपको पूरे वेबपेज को फिर से भेजने की आवश्यकता नहीं है।

यदि आप कुछ पुरानी वेबसाइट पर जाते हैं, तो आप देखेंगे कि एक बार आप कुछ क्लिक करते हैं, तो पूरे पृष्ठ को रिफ्रेश करना पड़ता है, यह पुराना एएसपी है। अधिकांश आधुनिक वेबसाइट में, आप देखेंगे कि आपके ब्राउज़र को पूरे पृष्ठ को ताज़ा नहीं करना है, यह केवल उस सामग्री के उस हिस्से को अपडेट करता है जिसे अपडेट करने की आवश्यकता है। उदाहरण के लिए, स्टैक ओवरफ्लो में, आप पृष्ठ को केवल सामग्री अपडेट करते हैं, न कि पूरे वेबपेज पर।

बस थोड़ा कोड से इसे डाल दिया। आशा है कि यह आपकी मददगार है जब आप सबसे पहले पृष्ठ यूआरएल का अनुरोध करते हैं आप इसे अधिकांश ब्राउज़र में स्रोत कोड देख सकते हैं नीचे इसका एक नमूना है

पोस्ट बैक की __doPostBack वास्तव में __doPostBack कॉल __doPostBack जो आपके पहले सर्वर से अनुरोधित अनुरोध से प्राप्त सभी फ़ॉर्म डेटा सबमिट करता है। ( __EVENTTARGET में नियंत्रण का आईडी होता है।)

 <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> NHibernate Demo </title> <script language="javascript" type="text/javascript"> function dopost() { __doPostBack('LinkButton1', ''); } </script> </head> <body> <h1>NHibernate Demo</h1> <form name="ctl01" method="post" action="Default.aspx" id="ctl01"> <div> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTMxNzcwNTYyMWRkKHoXAC3dty39nROvcj1ZHqZ5FYY=" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['ctl01']; if (!theForm) { theForm = document.ctl01; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="B2D7F301" /> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKZx5vTCgKM54rGBgLM9PumD20dn9KQguomfpAOdTG0r9Psa7al" /> </div> <a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a> <input type="button" value="testPostBack" id="testpostback" onclick="dopost();" /> </form> </body> </html> 

IsPostBack Asp.Net पृष्ठ की एक संपत्ति है जो यह बताती है कि पृष्ठ on its initial load है या नहीं, और अगर कोई उपयोगकर्ता आपके वेब पेज पर एक बटन का प्रदर्शन करता है जिसके कारण पेज को स्वयं वापस पोस्ट करना पड़ता है

और अधिक … Asp.Net ispostback ()

पोस्टबैक एक अनुरोध है, जिसके दौरान एएसपी नियंत्रण राज्यों के मूल्यों को देखने राज्य से बदलता है।