Ich nutze den
fullCalendar um den Schichtplan von mehreren Mitarbeitern darzustellen. Es gibt zudem einen Filter um Mitarbeiter aus dem Kalender aus, beziehungsweise in den Kalender einzublenden.
Hierfür gibt es Schaltflächen, die mit der jeweiligen Nutzer ID belegt sind.
Im Moment funktioniert das Filtern wie folgt:
Code:
$.ajax({
url: "./_res/json/getWorkTime.php", //gibt die Einträge des Nutzers type: "POST",
dataType: "json", //was da kommt ist json
data: {
start: $("#calendar").fullCalendar("getView").start._d.dateFormat("Y-m-d"), //Startdatum der aktuellen Ansicht
end: $("#calendar").fullCalendar("getView").end._d.dateFormat("Y-m-d"), //Enddatum der aktuellen Ansicht
user: parseInt($(this).attr("id").replace("user_","")) //Nutzer ID, gefiltert aus der geklickten Schaltfläche
}
}).done(function(ret) {
$.each(ret,function(index,value) { //da removeEvents nur eine Eintrags ID bearbeiten kann, wird hier über das ganze Ergebnisarray gerannt
$("#calendar").fullCalendar("removeEvents",value.id); //holt die Eintrags ID aus dem Ergebisarray und löscht das Event. Das frisst die Zeit.
});
});
Das funktioniert im Prinzip sehr gut, nur dauert es ewig, bis der Kalender die Einträge raus gefiltert hat. So dauert das Rausfiltern von 23 Einträgen gut sechs Sekunden.
Kennt jemand einen Weg um das schneller zu machen?
Vielen Dank