“El lado del servidor espera la finalización de Ajax – ASP Webform”
Después de la presentación del formulario en la página ASP, llamo a esta función para realizar algunas tareas en segundo plano.
El servicio es algo así:
Quiero que lo anterior se haga en segundo plano y necesito almacenarlo en sesión porque no podemos usar una base de datos persistente. El problema es que después de enviar para Type1, el servicio es golpeado y comenzará el procesamiento. Esto ahora bloqueará la IU y el usuario puede hacer cambios. Pero si el usuario cambia de Type1 a Type2 (misma IU solo valores diferentes para el formulario), se requiere un golpe en el lado del servidor que espera a que se complete el ajax. ¿Puedo hacer que la llamada ajax sea independiente de cualquier llamada del lado del servidor? Soy un poco nuevo en el renderizado del lado del servidor, así que cualquier ayuda sería genial.
davy.ai
Solución para hacer llamadas ajax independientes de las llamadas del lado del servidor
Para hacer la llamada ajax independiente de cualquier llamada del lado del servidor, puedes usar el siguiente enfoque:
Realiza la llamada ajax al servicio, pero no esperes la respuesta. En su lugar, puedes seguir con otras tareas una vez que la llamada ajax se haya iniciado.
Almacena los datos necesarios en la memoria del lado del cliente, en lugar de de la sesión del lado del servidor. Puedes usar localStorage o sessionStorage para este propósito.
Cuando el usuario pasa del Type1 a Type2, verifica si los datos necesarios están presentes en la memoria del lado del cliente. Si es así, úsalos directamente. Si no, realiza la llamada ajax nuevamente para buscar los datos y almacenarlos en la memoria del lado del cliente.
Aquí está el código modificado para lograr este enfoque:
En este enfoque, no estás bloqueando la interfaz de usuario mientras la llamada ajax se está procesando. En su lugar, estás almacenando los datos necesarios en la memoria del lado del cliente y los estás buscando cuando son necesarios. De esta manera, el usuario puede moverse entre diferentes tipos sin ningún tiempo de espera.