рдЗрд╕ рдЖрд░реНрдЯрд┐рдХрд▓ рдореЗрдВ рд╣рдо рдЬрд╛рдиреЗрдВрдЧреЗ рдХреА ASP.NET рдореЗрдВ рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдЖрд░реНрдЯрд┐рдХрд▓ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреВрд░рд╛ рдзреНрдпрд╛рди Client-side State Management рдкрд░ рд░рдЦреЗрдВрдЧреЗ|
State рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ ? (What is State)
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдорддреМрд░ рдкрд░ stateless рд╣реЛрддреЗ рд╣реИрдВред рдЕрдм рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ stateless рдХрд╛ рдорддрд▓рдм рдЕрд╕рд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
Stateless рдХрд╛ рдорддрд▓рдм рд╣реИ, рдЬрдм рднреА рд╣рдо рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣рдорд╛рд░реА рдЕрдиреБрд░реЛрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (requested functionality) рдпрд╛ рдЕрдиреБрд░реЛрдз (request) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдЪрд╛рд░ (communicate) рдХрд░рддрд╛ рд╣реИред Browser HTTP рдпрд╛ HTTPS protocol рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдЪрд╛рд░ (communicate) рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЙрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (response) рдХреЗ рдмрд╛рдж, рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдпрд╛ рдЬрдм рд╣рдо рдЕрдкрдирд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ (web browser) рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдЙрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рддрдм рдХреНрдпрд╛ рд╣реЛрдЧрд╛ ?
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ HTTP/HTTPs рдХреЛ рдпрд╣ рдпрд╛рдж рдирд╣реАрдВ рд░рд╣рддрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ URL рдкрд░ рдЧрдП рдереЗ, рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд┐рдЫрд▓реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА state рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛, рдЬрд┐рд╕реЗ stateless рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рд╢рд╛рдпрдж рдЖрдкрдХреЛ рд╕рдордЭ рдЖ рдЧрдпрд╛ рд╣реЛрдЧрд╛ рдХреА State рдФрд░ stateless рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ | рддреЛ рд╣рдо рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХреА рд╣рдорд╛рд░рд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙреЫрд░ stateless рд╣реЛрддреЗ рд╣реИрдВ|
State рдХреА рд░реВрдкрд░реЗрдЦрд╛ (State Outline)
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╣рд╛, HTTP рдПрдХ stateless рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпреЗ рдЧрдП рд╕рднреА рдЕрдиреБрд░реЛрдз (request) рдХреЛ рд╕рд░реНрд╡рд┐рд╕ (service) рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ/рд╕рдВрджрд░реНрднреЛрдВ (resources/references) рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдпреЗ рд╕рдВрд╕рд╛рдзрди (resources) рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИ, рдЬреИрд╕реЗ–
- рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (Objects)
- рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА (Allocated Memory)
- Sessions ID’s
- рдХреБрдЫ URL рдЬрд╛рдирдХрд╛рд░реА (some URL info)
State Management рдХреЗ рдкреНрд░рдХрд╛рд░ (Types of State Management)
ASP.NET рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 State Management рдкрджреНрдзрддрд┐рдпрд╛рдБ рд╣реИрдВ:
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ (Client-Side State Management)
рдЬрдм рднреА рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ (Client-Side State Management) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ state рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рд╕реАрдзреЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рд╕реНрдЯреЛрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдпреВрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпреЗ рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз (request) рдХреЗ рд╕рд╛рде рдХрдореНрдпреВрдирд┐рдХреЗрдЯ рдХрд░реЗрдЧреА рдФрд░ рдлрд┐рд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реЗ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпреВрдЬрд░ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (response) рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА |
рдЗрд╕рдХрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:-
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ (Server-Side State Management)
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рд▓реЗрдХрд┐рди рд╕рдВрдЪрд╛рд▓рди (operations) рдФрд░ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА (working) рдХреБрдЫ рд╣рдж рддрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (functionality) рдореЗрдВ рд╕рдорд╛рди рд╣реИред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдореЗрдВ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА Web Server рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (functionality) рдХреЗ рдХрд╛рд░рдг рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЛрдореЗрди рд╣реЛрддреЗ рд╣реИрдВред
рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдкрд░рд┐рджреГрд╢реНрдп (State Management Scenario)
рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╕реАрдзреЗ рдкрддрд╛ рд▓рдЧрд╛ рдкрд╛рдирд╛ рдереЛрдбрд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реЗ рдХреЛрди рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рд╣рдо рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рдХрд┐ рд╣рдо рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдпрд╛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдореЗрдВ рд╕реЗ рдХрд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рддрдХрдиреАрдХ (State Management Techniques)
рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рддрдХрдиреАрдХ (State Management Techniques) рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред рдЙрдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (functionality) рд╕реНрдЯреЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдБ hierarchy рджреА рдЧрдИ рд╣реИ
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рддрдХрдиреАрдХ (Client-side Techniques)
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рддрдХрдиреАрдХреЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ,
- View State
- Hidden field
- Cookies
- Control State
- Query Strings
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рддрдХрдиреАрдХ (Server-side Technique)
рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрдЯреЗрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рддрдХрдиреАрдХреЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ,
- Session State
- Application State
рдЕрдм рд╣рдо рдЬрд╛рдиреЗрдВрдЧреЗ рдХреА рдкреНрд░рддреНрдпреЗрдХ рддрдХрдиреАрдХ рдХреНрдпрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрджрд╛рд╣рд░рдг рд╕рд╣рд┐рдд рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ|
View State
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ View State рдЙрдкрдпреЛрдЧ ASP.NET рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА ASP.NET рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (ASP.NET applications) рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ post-back рдХреЗ рдмрд╛рдж рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП VIEW STATE рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ property рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ enable рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпреВрдЬрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (functionality) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ ViewState value рдХреЛ enable рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TRUE рдФрд░ рдЗрд╕рдХреЗ disable рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FALSE рдСрдкреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛|
// Page Load Event
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (ViewState["count"] != null)
{
int ViewstateVal = Convert.ToInt32(ViewState["count"]) + 1;
View.Text = ViewstateVal.ToString();
ViewState["count"]=ViewstateVal.ToString();
}
else
{
ViewState["count"] = "1";
}
}
}
// Click Event
protected void Submit(object sender, EventArgs e)
{
View.Text=ViewState["count"].ToString();
}
рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗ
View State рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:-
- рдпрд╣ page-level State Management рд╣реИ|
- view state рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ|
- рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ|
- view state, Property рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ|
Hidden Field
рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Hidden Field рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ objects рдХрд╛ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЬреЛ рднреА рдкрд░рд┐рдгрд╛рдо (result) рд╣реЛрддрд╛ рд╣реИ рдЙрд╕реЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо (result) рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрджреГрд╢реНрдп рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рдВрдЧрд▓ рд╡реЗрд░рд┐рдПрдмрд▓ (single variable) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬрдм рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рд╡реИрд▓реНрдпреВ рдмрд╛рд░-рдмрд╛рд░ рдмрджрд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдмрд╛рд░ рдмрд╛рд░ рдЗрд╕рдХреЛ track рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реАрдЬрд┐рдпреЗ рдЖрдкрдиреЗ рдХреЛрдИ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗ рдПрдХ рдлреЙрд░реНрдо рд╣реИ, рдЗрд╕ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╕рд╛рде рдЖрдк рдПрдХ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдЕрдЧрд▓реЗ рдкреЗрдЬ рдореЗрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдпреВрдЬрд░ рдХреЛ рддреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдкрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╣реА рднреЗрдЬрдирд╛ рдЬрд░реБрд░реА рд╣реИ рддреЛ рдЗрд╕ рд╕рдордп рд╣рдо Hidden Field рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ|
int newVal = Convert.ToInt32(HiddenField1.Value) + 1; HiddenField1.Value = newVal.ToString(); Label2.Text = HiddenField1.Value;
рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗ
Hidden fields рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:
- Hidden field рдореЗрдВ рдмрд╣реБрдд рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ
- рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛(functionality) рдХреЛ рд╕реАрдзреЗ рд╣реА рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ|
рдХреБрдХреАрдЬрд╝ (Cookies)
рдХреБрдХреАрдЬрд╝ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдПрдХ рдЫреЛрдЯреА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреВрдЬрд░ рдХреА рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рд╕реЗрд╡ (save) рд╣реЛрддреА рд╣реИред рдХреБрдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдпреВрдЬрд░ рдХреА рдкрд╣рдЪрд╛рди рдорд┐рд▓рд╛рди (identity matching) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рддреНрд░ рдЖрдИрдбреА (sessions id), рд▓рдЧрд╛рддрд╛рд░ (frequent) рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рдкреЛрд╕реНрдЯ-рдмреИрдХ рдЕрдиреБрд░реЛрдз (post-back request objects) рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдЬрдм рднреА рд╣рдо рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпреВрдЬрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдорд╛рд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реА рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
int postbacks = 0;
if (Request.Cookies["number"] != null)
{
postbacks = Convert.ToInt32(Request.Cookies["number"].Value) + 1;
}
// Generating Response
else
{
postbacks = 1;
}
Response.Cookies["number"].Value = postbacks.ToString();
Result.Text = Response.Cookies["number"].Value;
рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗ
рдХреБрдХреАрдЬрд╝ (cookies) рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:
- рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИ
- рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ
- рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдЗрд╕реЗ рдпреВрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ|
- рдХреБрдХреАрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд╛рдЗрдЯреНрд╕ рдпрд╛ KB рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ|
Query String
Query string рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдкреЗрдЬ рдкрд░ рдХреБрдЫ рдорд╛рди рд░рдЦрдиреЗ рдФрд░ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рджреВрд╕рд░реЗ рдкреЗрдЬреЛ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдкреЗрдЬ рд╕реЗ рджреВрд╕рд░реЗ рдкреЗрдЬ рдкрд░ рдпрд╛ рдЙрд╕реА рдкреЗрдЬ рдкрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
if (Request.QueryString["number"] != null)
{
View.Text = Request.QueryString["number"];
}
// Setting query string
int postbacks = 0;
if (Request.QueryString["number"] != null)
{
postbacks = Convert.ToInt32(Request.QueryString["number"]) + 1;
}
else
{
postbacks = 1;
}
Response.Redirect("default.aspx?number=" + postbacks);
рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗрдВ:
рдЗрд╕рдХреА рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ,
- рдЗрд╕рдХрд╛ рдЖрдорддреМрд░ рдкрд░ рд╡реИрд▓реНрдпреВ рдХреЛ hold рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдпрд╣ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ
- рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдкреЗрдЬ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреА рд╣реИ
- рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди (performance) рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ
- URL рд░реВрдЯрд┐рдВрдЧ (URL routing) рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ (real) рдФрд░ рдЖрднрд╛рд╕реА (virtual) path values рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ|












