Так что в основном у меня есть полный календарь. У меня есть 2 обработчика, eventDrop и eventDragStop.
оба
handler(doc)
input(doc)
теперь input
- это функция, которая отправляет запрос Ajax моему контроллеру.
function input(doc) {
$.ajax({
type: 'PATCH',
// TODO: For online, remove .replace
url: route('calendar.update', doc.event.id).replace('localhost', 'localhost/oda/public'),
data: {
title: doc.event.title,
description: doc.event.extendedProps.description,
project_id:doc.event.extendedProps.project_id,
date_from:moment(doc.event.start).format('YYYY-MM-DD'),
date_until:moment(doc.event.end).format('YYYY-MM-DD'),
time_from:doc.event.extendedProps.timestart,
time_until:doc.event.extendedProps.timeend
}
});
}
Ну, в принципе, если я EventDrop событие, оно отправляется дважды, потому что по какой-то причине EventDragStop также запускается. Но когда я перетаскиваю событие, оно отправляется только один раз.
Вот так выглядит мой контроллер.
public function update(Request $request, $id)
{
Task::find($id)->update([
'date_from' => $request->date_from,
'date_until' => $request->date_until,
'time_from' => $request->time_from,
'time_until' => $request->time_until,
'title' => $request->title,
'description' => $request->description
]);
}
Теперь это действительно странная часть.
Иногда событие обновляется, иногда нет.
1/10 - нет, а если я иду очень быстро, 3/10 раз оно не обновляется. .
Мои Ajax-запросы иногда занимают до 1,6 секунды с возвратом, но обычный запрос занимает около 900 мс (все еще очень долго).
https://pastebin.com/cUh5Dy9z очень длинная неинтересная вставка, есливам нужно перейти более конкретно.