AJAX - Ajax.PeriodicalUpdater

 
Vista:

Ajax.PeriodicalUpdater

Publicado por Aritz (32 intervenciones) el 18/12/2006 11:57:12
Tengo varios Ajax.PeriodicalUpdater (uso la libreria Prototype) actualizandome la información que veo por pantalla, y lo consigo. El problema está que cuando quiero parar uno de los objetos usando el metodo stop(), me para todas las actualizaciones. He hecho varios intentos, usar this para decir que quiero ese objeto ajax, llamarlos de diferente manera... pero no consigo que solo pare una actualizacion, siempre me para todas.

Tambien he leidoen internet que mas gente tiene ese problema, pero no hay ninguna opcion para solucionar el problema (o no la he encontrado). Si alguien pudiera ayudarme se lo agradeceria
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

Problema con Ajax.PeriodicalUpdater al intentar detener actualización individual

Publicado por Alejandro (17 intervenciones) el 27/02/2024 20:36:20
Aritz, este problema es conocido y se debe a que PrototypeJS no proporciona un método directo para detener una instancia específica de `Ajax.PeriodicalUpdater`. Sin embargo, puedes trabajar alrededor de esto almacenando las instancias de `Ajax.PeriodicalUpdater` que creas y luego deteniéndolas individualmente. Aquí hay un enfoque sugerido:

1. Crear un objeto para almacenar instancias:

En lugar de utilizar variables individuales para cada `Ajax.PeriodicalUpdater`, crea un objeto para almacenar todas las instancias. Esto te permitirá acceder y detener instancias específicas más fácilmente.

1
2
// Objeto para almacenar instancias de Ajax.PeriodicalUpdater
var periodicalUpdaters = {};

2. Crear y almacenar instancias:

Cuando crees instancias de `Ajax.PeriodicalUpdater`, guárdalas en el objeto creado en el paso anterior.

1
2
3
// Crear y almacenar instancias
periodicalUpdaters["update1"] = new Ajax.PeriodicalUpdater('element1', 'url1', { frequency: 5 });
periodicalUpdaters["update2"] = new Ajax.PeriodicalUpdater('element2', 'url2', { frequency: 10 });

3. Detener instancia específica:

Ahora, cuando quieras detener una actualización específica, utiliza el nombre de la instancia que asignaste al objeto.

1
2
// Detener una instancia específica
periodicalUpdaters["update1"].stop();

Esto detendrá solo la actualización asociada a la clave `"update1"`.

Aquí hay un ejemplo más completo:

1
2
3
4
5
6
7
8
9
// Objeto para almacenar instancias de Ajax.PeriodicalUpdater
var periodicalUpdaters = {};
 
// Crear y almacenar instancias
periodicalUpdaters["update1"] = new Ajax.PeriodicalUpdater('element1', 'url1', { frequency: 5 });
periodicalUpdaters["update2"] = new Ajax.PeriodicalUpdater('element2', 'url2', { frequency: 10 });
 
// Detener una instancia específica
periodicalUpdaters["update1"].stop();

Recuerda ajustar los nombres y frecuencias según tus necesidades. Este enfoque debería ayudarte a detener instancias individuales de `Ajax.PeriodicalUpdater`.
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