ActionScript - overbooking al cargar imagenes

 
Vista:

overbooking al cargar imagenes

Publicado por avielo (1 intervención) el 13/11/2008 12:15:07
wenas, trabajo en flex con actionScript, tengo un problemilla, tengo una web con diferentes sesiones en las que se muestran los trabajos del cliente, las sesiones son un carusel de imagenes las cuales cargo desde php dinamicamente, al entrar en el modulo de imagenes, genero las imagenes y luego las cargo, la carga la hace bastante bien, el problema es cuando se cambia de sesion en la web muy rapido sin dejar terminar de cargar la sesion anterior y varias seguidas la web se bloquea, mi pregunta es hay alguna forma para que al cabiar de sesion se detenga la carga del estado anterior y continue con la ultima pulsada?. bueno espero vuestras repuestas un saludo y gracias por anticipado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Detener carga de sesión anterior al cambiar rápidamente de sesión en Flex

Publicado por Alejandro (369 intervenciones) el 24/06/2023 00:19:15
Hola, Avielo.

Para detener la carga de la sesión anterior al cambiar rápidamente de sesión en tu aplicación Flex, puedes usar la clase `URLLoader` y su método `close()` para interrumpir la carga de datos. Aquí tienes un ejemplo de cómo podrías implementarlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
 
// Declarar una variable de tipo URLLoader globalmente
var urlLoader:URLLoader;
 
function cargarSesion(url:String):void {
    // Verificar si ya hay una carga en progreso y detenerla
    if (urlLoader && urlLoader.connected) {
        urlLoader.close();
    }
 
    // Crear un nuevo URLLoader para la carga de la nueva sesión
    urlLoader = new URLLoader();
    urlLoader.addEventListener(Event.COMPLETE, sesionCargada);
    urlLoader.load(new URLRequest(url));
}
 
function sesionCargada(event:Event):void {
    // Manejar los datos cargados de la sesión
    // ...
 
    // Limpiar el URLLoader
    urlLoader.removeEventListener(Event.COMPLETE, sesionCargada);
    urlLoader = null;
}

En este ejemplo, la función `cargarSesion` se llama cuando se desea cargar una nueva sesión. Antes de realizar la nueva carga, verifica si ya hay una carga en progreso (`urlLoader` no es nulo) y llama al método `close()` para detenerla. Luego, crea un nuevo `URLLoader` para la nueva carga y continúa con el proceso normal.

Al llamar a `urlLoader.close()`, se cancelará la carga en curso y evitará que la aplicación se bloquee debido a múltiples cargas simultáneas. Asegúrate de utilizar la misma instancia de `URLLoader` para cada carga y de limpiar los listeners y asignaciones correspondientes al finalizar cada carga.

Espero que esta solución te ayude a evitar el bloqueo de la aplicación al cambiar rápidamente de sesión. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar