Vaya! Otro problema de estos que cuestan resolver y que gustan de compartir con la gente…
Resulta que usando el FullCalendar, nuestra aplicación empezaba a realizar más de una llamada ajax cada vez que pulsabamos un botón del calendario.
Pues el problema estaba básicamente en que cuando recargamos el calendario segun ciertas acciones del usuario, lo haciemos de la siguiente forma:
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', my_url);
Y nada… Resulta que de esta manera, se iban creando ‘event sources‘ en el calendario y FullCalendar no tiene una forma de hacer limpieza de estos de forma sencilla.
Menos mal que gracias a este hilo de google code, encontramos esta faena hecha.
Sólo tenemos que abrir nuestro fullcalendar.js (actualmente versión 1.4.11) e irnos al apartado de EventManager y añadir:
t.removeEventSources = removeEventSources;
function removeEventSources() {
sources = [];
// remove all client events from all sources
cache = [];
reportEvents(cache);
}
Ahora ya si que podemos recargar el calendario correctamente:
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('removeEventSources');
$('#calendar').fullCalendar('addEventSource', my_url);
Bueno. Espero que os ayude…
Me acabas de salvar con este post…tengo una entrega mañana y no sabia como hacerle para integrar los eventos …full gracias
De nada hombre…
Espero que la entrega vaya bien.
xD
estimados, estoy utilizando esta herramienta pero tengo un problema, yo al momento de seleccionar en un combo un turno, me muestra el calendarios con el turno de la mañana , y al momento de seleccionar en el combo el turno tarde, me crea otro calendario arriba y me muestra el turno de la tarde, es decir me muestra dos calendario, y asu sucesivamente, si selecciono de nuevo el turno de mañana me crea otro calendario con el turno de la mañana ya son ahi 3 calendarios.. como puedo solucionar esto.. muchas gracias por su ayuda
Disculpa el tiempo o por revivir el post pero tengo un problema que no he podido solucionar.
El problema: consulto de la base de datos todos los eventos del mes y año actual, son como 450 por lo general, pero esto hace que la pagina se cuelgue y he intentado de todo y no he hecho de que sea mas rapido u optimo. tengo mi función de esta manera:
$(‘#calendar’).fullCalendar({
events: function() {
$.ajax({
type: ‘POST’,
// data: {‘startDate’: start, ‘endDate’: end, ‘buCals[]’: cal},
url: ”,
dataType: ‘json’,
// async: false,
success: function(data){
var newEvents = [];
var events = new Object();
$(data).each(function(i, index) {
events = {
title: data[i].name_activity,
start: data[i].date_start,
}
newEvents.push(events);
$(‘#calendar’).fullCalendar(‘renderEvent’,newEvents[i]);
});
// $(‘#calendar’).fullCalendar(‘addEventSource’);
}
});
}
});
al intentar cargar esos 450 eventos, se cuelga la pagina :s
me ayudas por favor?
Por lo que veo, cada vez que añades un evento renderizas el calendario…
Lo que proponen en la documentación podría ser más óptimo.
Vale la pena que lo adaptes para hacerlo más parecido a lo que proponen ellos en esta url:
https://fullcalendar.io/docs/event_data/events_function/
Ya nos dices que tal…