Working with State in HTML Forms Page

Working with State in HTML Forms Page – पिछले Example में Create किया गया हमारा “Addition Form” एक Dynamic लेकिन Stateless Page का Example है। यानी एक User Request का Data दूसरे User Request में Available नहीं होता और किसी भी Web Application की ये एक Default Situationहै।

सामान्य स्थितियों में Web Applications का ये Stateless State कोई समस्या पैदा नहीं करता और हमारे पिछले उदाहरण की तरह सामान्य से Run होते हुए User द्वारा Supply किए जाने वाले Data का Server Side Code Behind File द्वारा Processing होता है और Generate होने वाला Output फिर से उसी Client को Response के रूप में Send कर दिया जाता है, जिसने Request Perform किया होता है।

हम समझ सकते हैं कि इस पहले Request/Response Cycle में Generate होने वाले किसी प्रकार के Data को फिर से दूसरी Request की जरूरत नहीं है। यानी हर Request/Response Cycle अपने आप में पूर्ण है और किसी भी अन्‍य Request द्वारा Generate होने वाले Response के Data पर निर्भर नहीं है अथवा किसी भी पिछले Request के Data पर निर्भर नहीं है।

लेकिन ज्यादा Complex Web Applications में ऐसे Data भी होते हैं, जो एक से ज्यादा Request/Response Cycle के बीच Travel होते हैं और एक से ज्यादा Requests तथा उस Request द्वारा Perform होने वाली Processing पर निर्भर होते हैं।

उदाहरण के लिए किसी E-commerce Application में User एक ही बार में सारे Products को Select नहीं कर लेता, जिन्हें वह खरीदना चाहता है, बल्कि वह हर खरीदे जाने वाले Product को One-by-One नए-एक करके अपने Shopping Cart में Add करता है और हर Product के Shopping Cart में Add होने में एक Request/Response Cycle Perform होता है।

इस स्थिति में अगली Request/Response Cycle के दौरान Web Server को इस बात का ध्‍यान रखना जरूरी होता है कि उसी समान User ने पिछले Request/Response Cycle में किस Product को अपने Shopping Cart में Add किया था और इस जानकारी को Maintain रखने वाला Data ही किसी Web Application का State कहलाता है तथा इस प्रकार के State Data पर निर्भर रहने वाले Web Application को Stateful कहा जाता हैं। ASP.NET Application हमें इन States को कुल चार तरीकों से Manage करने की सुविधा देता है:

Form Input State

इस State में Form के Input Fields उन Values को Show करते हैं, जिन्हें User ने Submit Button पर Click करने से पहले Input किया था।

View State

ये State किसी Web Pageमें एक Hidden Element केvalue Attribute के रूप में <form> Element के उन मानों को Store करता है, जिन्हें User उस Input किया है।

Session State

ये State, View Stateके समान ही काम करता है, लेकिन इसके अन्‍तर्गत Client को Send किए जाने वाले State Data के रूप में केवल एक Session Identifierको Send किया जाता है जबकि उस Session Identifier के साथ Associated सारा State Data, Web Server परही Saved रहता है, जिसे अगली Request के दौरान Client Side से आने वाले Session Identifier के माध्‍यम से Identify किया जाता है।

Application State

ये State हमें उस Data को Store करने की सुविधा देता है, जो उस समय Available होते हैं जब हमारा Web Application Perform की गई प्रत्येक Request को Process करता है। यानी ये Data Web Application पर Send की जाने वाली प्रत्येक Request के लिए समान रूप से उपलब्ध रहता है।

ASP.NET में State Feature की जरूरत इसलिए होती है क्योंकि जब भी User किसी Page के लिए अपने Web Browser से कोई Request Perform करता है, प्रत्येक Request को Process करने के लिए Code Behind File Execute होती है और जितनी भी बार भी Code Behind File Execute होती है, उस Code Behind File में Defined Class Re-Create होती है। यहां तक कि यदि समान User, समान .aspx Page के लिए भी एक से ज्यादा बार Request Send करता है, तो उस समान User के लिए भी हर Request को Process करने के लिए Page से सम्बंधित Code-Behind Class फिर से Re-create होती है।

जबकि यदि समान Page के लिए समानान्तर रूप से बहुत सारे Users Request Send करें, तो हर Request को एक Unique व Different Request मानते हुए ASP.NET Server प्रत्येक Request के लिए एक ही .aspx Page के लिए अलग-अलग User को Serve करने के लिए Code Behind Classes Recreate करता है।

यानी यदि सरल शब्दों में कहें तो ASP.NET Server प्रत्येक Page Request के लिए Code Behind Class को Recreate करता है। जिसकी वजह से किसी User ने पिछली Request में कौनसा Data Send किया था, इस बात की कोई जानकारी Web Server Maintain करके नहीं रख सकता। क्योंकि जैसे ही पहली Request को Process करके Response को Send कर दिया जाता है, उसके तुरन्त बाद उस Request से सम्बंधित सारे Data को Web Server द्वारा Destroy कर दिया जाता है।

परिणामस्वरूप समान User द्वारा फिर से अगली Request Send करने पर उस नई Request के लिए पिछली Request का कोई भी Data फिर से Reuse किए जाने के लिए Available नहीं रहता और इसीलिए ASP.NET के इन State Features का प्रयोग करते हुए एक से अधिक Request के बीच किसी State Data कोAvailableरखने की सुविधा को प्राप्त किया जाता है, जिसे State Management कहते हैं।

Core ASP.NET WebForms in Hindi - BccFalna.com: TechTalks in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF

BUY NOW GET DEMO REVIEWS