He usado el paquete fullcalendar en angular para mostrar eventos durante un mes. Se puede hacer clic tanto en la fecha como en los eventos y hay una función para manejar tanto el clic en la fecha como el clic en el evento. Funciona bien en teléfonos de escritorio y Android, pero el problema está en el iPhone, hay un retraso significativo en cada clic de fecha/evento. Después de tocar un evento, lleva un tiempo procesar la selección.
Me di cuenta de que se llamaba a eventContent cada vez que se hacía clic en un evento y se llamaba varias veces y, a veces, recibía las siguientes advertencias:
[Violation] 'setInterval' handler took 52ms [Violation] 'setTimeout' handler took 66ms [Violation] Forced reflow while executing JavaScript took 31msYa intenté comentar el manejo de la selección y las funciones eventContent, pero no noté ninguna diferencia significativa.
inicialización de calendario completo
this.calendarOptions = { headerToolbar: { left: '', right : 'prev title next' }, customButtons: { prev:{ click:this.previousMonth.bind(this) }, next:{ click:this.nextMonth.bind(this) }, }, showNonCurrentDates: false, fixedWeekCount: false, views: { dayGridMonth: { // name of view titleFormat: {month:"2-digit"} } }, dayCellContent: arg => { return arg.date.getDate(); }, aspectRatio:1.2, height: 'auto', unselectAuto: false, eventColor:"white", locale:jaLocale, rerenderDelay:1, initialDate: 2021-09-17, events:this.Price, eventContent:this.renderEvent, select: this.handleDateSelect.bind(this), dateClick: clickInfo => { const calendarApi = clickInfo.view.calendar; calendarApi.select(clickInfo.date); }, eventClick: clickInfo => { const calendarApi = clickInfo.view.calendar; calendarApi.select(clickInfo.event.start); }, datesSet: this.handleDatesSet.bind(this), unselect: this.handleDateUnselect.bind(this) };