FullCalendar - ¿Qué nivel de rendimiento de representación de eventos debo esperar?

Estoy renderizando 100 eventos en FullCalendar usando $('#CalendarPlugin').fullCalendar('renderEvent', {} ); siendo llamado 100 veces seguidas.

El rendimiento del navegador que veo en mi computadora (Core2 6600 a 2.4 GHz con 4 GB de RAM)

  • Chrome: 3 segundos
  • Firefox: 6 segundos
  • IE9: 6 segundos

¿Es este un nivel de desempeño esperado? ¿Existe una forma más rápida de cargar y renderizar eventos?

Una vez que se han agregado a FullCalendar, se mueven entre meses y se vuelven a renderizar mucho más rápido. Es solo la carga inicial de ellos usando renderEvent eso es lento.

preguntado el 10 de mayo de 11 a las 12:05

Sí, definitivamente use un ajax del lado del servidor para obtener eventos. Tengo una base de datos con cientos de miles de eventos durante los últimos 10 años. Tengo un feed complejo donde las personas pueden elegir lo que quieren ver, pero aún así, ¡como máximo, no mostraré más de 50 eventos por mes como máximo! Y es rápido. pero la base de datos y la página están en el mismo servidor, ¡no las divida! -

2 Respuestas

El desarrollador estaba trabajando en mejoras de rendimiento para la versión 1.4.4, pero usar el complemento 100 veces seguidas sigue siendo considerable.

Una técnica que podría intentar para mejorar el rendimiento es utilizar un objeto en addEventSource como esto espera y rinde por completo, creo:

 $("#calendar").fullCalendar("addEventSource", msg.items);

Respondido el 03 de Septiembre de 15 a las 10:09

@ Gary-Green Cambié a código para crear una matriz de los 100 eventos, luego para asignar eso usando addEventSource y veo un gran aumento en el rendimiento. Parece que hay muchos menos gastos generales de esta manera. - Peter Bridger

La idea es buscar todos los eventos en un período determinado a la vez, mire la api

http://arshaw.com/fullcalendar/docs/event_data/events_array/

http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/

http://arshaw.com/fullcalendar/docs/event_data/events_function/

Su rendimiento aumenta una vez que se cargan inicialmente porque, de forma predeterminada, los eventos se almacenan en caché.

contestado el 10 de mayo de 11 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.