aplicación ASP.Net ViewState del código y un tutorial

  

ViewState es una nueva forma de guardar el estado de .Net propuso (en realidad vino viejo en botellas nuevas); sabemos que los programas Web tradicionales manera de ahorrar unos cuantos estados tienen tales especies: 1, la aplicación de esta es un área de almacenamiento global durante la vida de la aplicación web, los datos almacenados en la aplicación efectiva a nivel mundial son, en Asp.Net, hay un grupo de aplicaciones que posee varias (o decenas ) instancia de la aplicación, cada solicitud tendrá una instancia de la piscina para manejar la petición, antes de completar la solicitud, la instancia no aceptará otras solicitudes, lo que representa un problema, al mismo tiempo, puede haber más de una aplicación, que es más hilos, estos hilos están presentes pueden acceder a la aplicación, por lo que en el momento de objetos de aplicación en el proceso que considerar la sincronización de hilos, de hecho objeto interno aplicación implementa un hilo de bloqueo, se hace llamar la Agregar, Eliminar y otros métodos cuando se invoca automáticamente bloquear y desbloquear las operaciones, pero por razones de rendimiento, por pase directo Indizador u otros medios para obtener los objetos y el funcionamiento del proceso, la Solicitud de ningún procesamiento sincronización automática hilo, necesitan utilizar el siguiente código similar para manejar: Application.Lock (); ((int) Aplicación [" Count "]) ++; Application.UnLock (); vale la pena señalar que después de llamar al bloqueo, si no hay desbloqueo de pantalla de llamada, luego, al final de esta solicitud, objeto de aplicación se desbloquea automáticamente, evitando así problemas causados ​​punto muerto, pero para la robustez del código, bloqueo de llamadas completo y el método de desbloqueo deben llamar la modificación se completa inmediatamente. objeto de aplicación es esencialmente una tabla hash, de acuerdo con el objeto de almacenamiento de claves, ya que el objeto es global y se almacena en el servidor, y hay múltiples hilos de acceso, por lo tanto, debe ser almacenado dentro de la aplicación un mayor acceso, modificar y menos es global la función de datos utiliza al menos una mayoría de, como un mostrador o una cadena de conexión de base de datos y similares. 2, Sesión dentro Asp.Net, hay una StateApplication para gestionar la sesión, de hecho, un proceso de trabajo, debido Sesión proceso, creado peticiones especiales, cada solicitud es recibida a tiempo, el proceso de trabajo se llama el estado del servidor ( web.config proporcionado por el servidor diferentes estados) para adquirir la sesión, si no hay SessionId sea la Sesión, se creará una nueva, y luego ligado a un contexto (el HttpContext); y la diferencia es Asp, cómo el estado del servidor de la Sesión especies presentes dentro de la Asp.Net implementa tres: 1) InProcStateClientManager esta es la forma tradicional para preservar sesión, pero hay algunos matices 2) SqlStateClientManager esta es la manera de salvar la sesión de base de datos 3) OutOfProcStateClientManager este es un proceso de salvar Sesión mecanismo de la sesión fuera del camino Asp.Net tiene una característica que lidiar sesión del proceso de trabajo y guardar el estado del servidor de sesión son independientes, de acuerdo con MSDN decir, existen los siguientes beneficios: " porque la memoria no se encuentra en estado de sesión para ASP. NET proceso de trabajo, puede ser Lograr la recuperación de errores de aplicación. Y " " porque todos los procesos de trabajo del estado no se almacenan juntos, se puede limpiar y procesos a través de partición de aplicación múltiple. Esta partición puede mejorar significativamente la disponibilidad y escalabilidad de la aplicación en un equipo que tiene varios procesos. Y " " porque todos los procesos de trabajo del estado no se almacenan juntos, por lo que puede ejecutar a través de la partición de una aplicación a varios procesos de trabajo en varios equipos. Y " Asp.Net mecanismo de Sesión de opinión personal, sentirse mejor flexibilidad, implementación interna también es más inteligente, pero en realidad no lo hizo demasiado porque de la prueba, por lo que la aplicación no será como se dice tan hermoso, no envasados billete. Tener la oportunidad, seré mecanismo de Sesión discusión en profundidad dentro de la redacción de artículos Asp.Net solos.

3, Cookie no decir nada de esto, y en el hecho de Asp.Net Asp Cookies ninguna diferencia, tal vez esta tecnología se mezcla, y más dependiente de la implementación del cliente, MS también hay mejoría.

4, ViewState que es el foco de nuestra discusión de hoy, de hecho ViewState no es un misterio, es un campo oculto, pero se guarda bases estado de control del servidor, que no están familiarizados con los amigos puede ver el código fuente con el código HTML IE, encontrar un archivo llamado " __ VIEWSTATE " el campo oculto, que tiene una gran cantidad de desorden de caracteres, este es el ViewState de la página.

programa Web ¿La gente puede tener esta experiencia dolorosa, a veces con el fin de hacer frente a página más complejas características anteriores, puede añadir un montón de Oculto, y luego en el lado del servidor con una gran cantidad de juicio para analizar la actual estado, para escribir molesto, terminó el código es feo, de hecho, ViewState es ayudar a nuestro sistema de controles para lograr la capacidad de guardar el estado de los controles del lado del servidor puede guardar el estado entre múltiples peticiones también depende de ello. Bueno, aquí para presentarle, hoy no estamos discutiendo el uso de ViewState, pero desde el interior para probar las aguas de la naturaleza de esta cosa. Primer paso fue construir una página de prueba: < lenguaje% @ Page = " c # " Codebehind = " ViewStateTest.aspx.cs " AutoEventWireup = " falso " Hereda = " CsdnTest.ViewStateTest "% > <! DOCTYPE HTML PUBLIC " - //W3C //DTD HTML 4.0 Transitional //EN " > < html > < head > < title > ViewStateTest < /title > < meta name = " GENERADOR " contenido = " microsoft Visual Studio 7.0 " > < meta name = " CODE_LANGUAGE " contenido = " C # " > < meta name = " vs_defaultClientScript " content = " JavaScript " > < meta name = " vs_targetSchema " content = " http: //schemas.microsoft.com/intellisense/ie5" > < /head > < body > < form id = " ViewStateTest " method = " entrada " runat = " servidor " > < asp: Button ID = " btnPostBack " runat = " servidor " Text = " Publicar Back " width = " 85px " > < /asp: Button > < br /> < asp: ID CheckBox = " chkTest " Ru nat = " servidor " Text = " Esta es una casilla de verificación " > < /asp: CheckBox > < /form > < /body > < /html >

Este es Vs .Net diseñado una simple página, que contiene unos botones del lado del servidor y una casilla y nuestro botón de respuesta en el caso del lado del servidor:

vacío btnPostBack_Click privado (remitente del objeto, System.EventArgs e) { [1] Response.Write (" ViewState: " + Request.Params [" __ VIEWSTATE "] + " < br /> "); [2] string decodeValue = Encoding.UTF8.GetString (Convertir. FromBase64String (Request.Params [" __ VIEWSTATE "]));

Copyright © Conocimiento de Windows All Rights Reserved