zoukankan      html  css  js  c++  java
  • ASP.NET Client Side State Management

    There are two types of state management - server side and client side. In this post I'm going to introduce the client side state management and explain when to choose client side or server side state management

    Client Side State Management Techniques

    Client side state management include the following techniques:

    • ViewState - ASP.NET track the state of the controls on the pages through
      the ViewState. Also, ViewState is used to store small custom values.
      Don't hold big custom data object because it will affect the performance of
      your web page.
    • Hidden fields - hidden fields are html input control with a type of hidden -
      <input type="hidden">. They are used to store data in the html without presenting
      the data in the browser. The data of hidden field is available when the form is
      processed or when using javascript. The ViewState use hidden field to save its
      data. You can use the View Source operation (if enabled) to scan the web page's
      source and to look for hidden fields.
    • Query strings - query string state is stored in the URL that is sent to the browser.
      Unlike ViewState and hidden fields, the user can see the values without using
      special operations like View Source. The parameters are passed in the URL
      separated by the & symbol.
      For example, in the following URL the query string is built out of two data
      parameters, a and b, which hold the values 1 and 2 - http://www.srl.co.il?a=1;b=2.
    • Cookies - the cookies store their values in the user's browser and the browser
      send them back to the server every time a request is performed.
      Cookies are maintained during the session of a user in the web site and therefore
      can be used in multiple web pages of the site.
    • Control state - when building custom controls you should use the control state
      to save your state if EnableViewState property is set to false.
      This is the only reason to use this technique.

    How do you know when to choose the client side or server side state management?

    When to Choose Client Side State Management

    Choose client side for better scalability and support multiple servers. The client side helps to get better scalability by storing state data in the user's browser instead of using the web server's memory. The client side support multiple servers because all the state is located in the browser. This way when you are redirected to another server you don't need to worry about your state.

    The thing I wrote doesn't means that you can't use server side state management for the supporting of multiple server. To enable server side state management to be able to support multiple servers you'll have to use centralized state management (state server or store state in database) or you'll have to use techniques like sticky
    connection for load balancing.  

    When to Choose Server Side State Management

    Choose server side for better security and to reduce bandwidth and web page's size. Server side state management is more secure. The state is saved on the server and therefore isn't delivered to the client.
    Confidential state data shouldn't be used with client side state management. Server side reduce the traffic to and from the client because data isn't sent to the browser and it's saved on the server. You should always remember that using client side state management sends data to the user's browser and that data is sent back to the server
    every time. This situation increases bandwidth usage and therefore your application will be less responsive and you'll suffer from performance issues.

    In the next post I'll drill down into the client side techniques and explain how to use them.

  • 相关阅读:
    #JVM方法区、堆、栈’#
    #前端# 解决前端页面滑动不顺畅的问题
    【Web协议】服务器推送浏览器:Server-Sent Events(SSE)
    【性能调优】Java程序CPU高定位
    转载 I/O模型:BIO/NIO/AIO 学习
    【性能调优】Java程序内存高定位
    算法--字符串:最长回文子序列
    算法--字符串:最长递增子序列LIS
    算法--字符串:最长回文子串
    算法--字符串:最长公共子序列LCS
  • 原文地址:https://www.cnblogs.com/known/p/1328553.html
Copyright © 2011-2022 走看看