Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Tipps & Tricks ›

Performanceprobleme mit Date und Calendar bzw. Fullcallendar

Eingetragen von Der Gummibär (6)
am 28.05.2011 - 09:26 Uhr in
  • Tipps & Tricks
  • Drupal 7.x

Performanceprobleme mit Date und Calendar bzw. Fullcallendar

Hallo,

ich habe eine Website, auf der ich einen Veranstaltungskalendar bereitstelle.

Drupal 7 mit folgenden Modulen setze ich ein:

  • Drupal Core 7.2

Module

  • Views 7.x-3.x-dev
  • cTools 7.x-1.x-dev
  • Date 7.x-2.0-alpha3
  • FullCalendar 7.x-2.x-dev

Das Problem ist, daß das Anzeigen der Wochenansicht ca. 15 s bis 20 s dauert.

Die Ursache scheint daran zu liegen, daß dem Kalendar einfach zu viele Termine zur Anzeige bereitgestellt werden:

Es gibt ca. 50 wöchentliche Veranstaltungen, für die ich als Wiederholfrequenz das ganze Jahr 2011 angegeben habe. Hinzu kommen noch etliche einmalige Termine. Insgesamt handelt es sich um ca. 50 * 52 + 50 = 2650 Termine.

Zur Verdeutlichung hier der Link auf die Website bzw. den Kalendar:

http://www.tanz-community24.de/

http://www.tanz-community24.de/kalendar

Um das Performanceproblem zu lösen, scheint es keinen anderen Weg zu geben, um die Anzahl der Termine, die der Calendar verarbeiten muß, zu reduzieren.Ich habe mir mehrere Lösungsalternativen überlegt, allerdings scheint keine richtig zu funktionieren.

Ich würde gerne wissen wie Ihr das machen würdet.

Alternative A) Filter einsetzen

Im Endeffekt bezieht der Kalendar seine Daten aus einer View.
Als einfachste Möglichkeit habe ich mir überlegt, nur die Termine für die aktuelle und die Folgewoche heraus zu filtern, so daß der Kalendar nur ca. 100 Termine verarbeiten muß.

Das Problem ist nur, daß der Filter anscheinend nicht wie gewünscht funktioniert. Zumindest ist der Kalendar genauso langsam wie ohne Filter.

Alternative B) Nur Termine für den aktuellen Monat generieren.

Mit Views Bulk Operations nur Termine für den aktuellen Monat generieren.

http://drupal.org/project/views_bulk_operations

Hier gibt es nur das Problem, daß dieses Modul für Drupal 7 noch in seinem sehr frühen Stadium ist und eine Änderungsfunktion für Datumsfelder noch nicht unterstützt.

Alternative C) ???

Was sind Eure Erfahrungen? Könnt Ihr mir Ratschläge geben, wie ich das Performanceproblem lösen kann, ohne die Funktionalität der Website verändern zu müssen?

Vielen Dank für Eure Hilfe

Der Gummibär

‹ Text Feld und Upload Möglichkeit für bestellende Kunden Blogartikel rückdatieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi ... also bei mir klappen

Eingetragen von Thoor (3678)
am 28.05.2011 - 10:51 Uhr

Hi ... also bei mir klappen Deine Wochenansichten zügig und normal. Der Seitanaufbau ist flott.

Hat sich das Problem bereits gelöst? Was mir noch einfällt ... in VIEWS 2 konnte man Ansichten cachen lassen. Das steigerte die Performance der Ansicht enorm. Ich habe noch gar nicht nachgesehen, wo sich das bei VIEWS 3 versteckt ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider nein

Eingetragen von Der Gummibär (6)
am 11.06.2011 - 17:51 Uhr

Das Problem habe ich leider noch nicht lösen können.

Im Moment besteht der Workaround darin, daß ich mir pro Event nur ca. 10 wiederkehrende Termine generieren lassen.
Nach 10 Wochen muß ich allerdings die Termine per Hand erneut generieren :-(

Die Ansichten zu cachen, scheitert daran, daß der Kalendar nach einer unbestimmten Zeit aus dem Tritt kommt,
und dann nur noch die reine HTML Liste angezeigt wird.

Ansonsten finde ich es interessant, daß es anscheinend nicht stört, wenn der initiale Aufbau des Kalendars ca 15 Sekunden dauert.
(Nachher geht das Navigieren ja wesentlich schneller ..)

Vielen Dank für Deine Mühe

  • Anmelden oder Registrieren um Kommentare zu schreiben

Date Repeat Dates mittels Rules Actions generieren

Eingetragen von Der Gummibär (6)
am 16.06.2011 - 22:44 Uhr

Im Moment arbeite ich an einer weiteren Lösung, welche mir sehr erfolgversprechend erscheint.

Mittels des Rules API will ich mir z.B. Jede Woche die Anzahl der Date Repeat Dates neu generieren lassen.
Dadurch hoffe ich, da Gesamtanzahl der Termine niedrig halten zu können,

Meine Aktion sieht bisher wie folgt aus:

<?PHP
$startDate = new DateObject(strtotime('-14 days'));
$endDate   = new DateObject(strtotime('+14 days'));
$STIME="18:00:00";
$ETIME="23:55:00";

// Replace Until date in existing RRule (not time)
$oldRRule = $node->field_test_daterepeat[$node->language][0]['rrule'];
if( isset($oldRRule ) ) {
    $suchmuster = '/UNTIL=(\d+)T(\d+)Z/i';
    $ersetzung = 'UNTIL='.$endDate->format('Ymd').'T${2}Z';
    $rrule = preg_replace($suchmuster, $ersetzung, $oldRRule);
    drupal_set_message("Old RRULE: " . $oldRRule );
    drupal_set_message("New RRULE: " . $rrule );
} // if
else {
    drupal_set_message("Kein RRULE gefunden." );
    return;
}

//use the date module to figure what the stamps are for all of the repeats relative to this adjusted date      
$dates = date_repeat_calc($rrule, $startDate->format('Y-m-d\T').$STIME, $endDate->format('Y-m-d\T').$ETIME );

$logMessage = "Neues Zeitfenster: " . $startDate->format('Y-m-d') . " bis " . $endDate->format('Y-m-d');
drupal_set_message($logMessage);

$value = array();
foreach ($dates as $delta => $date) {
    $date_start = new DateObject($date);

    $value[$delta] = array(
      'value' =>  $date_start->format("Y-m-d\TH:i:s"),
      'value2' =>  $date_start->format("Y-m-d\TH:i:s"),
      'timezone' => $startDate->getTimezone(),
      'rrule' => $rrule,
      );

    drupal_set_message( $delta . '=>' . $value[$delta]['value']);
}

$node->field_test_daterepeat[$node->language] = $value;

$node->revision = 1; // Create new revision
$node->log = "Automatisch generiert: ".$logMessage; // Log message

// Save updated node
if($node = node_submit($node)) { // Prepare node for saving
    node_save($node);
    drupal_set_message("Node with nid " . $node->nid . " updated!");
}

return array('node' => $node);
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

[OT] Nervige PopUp[/OT]

Eingetragen von r4s6 (1383)
am 17.06.2011 - 09:21 Uhr

Bei mir hat der Kalender auch recht schnell geladen, jedenfalls keine 15s. Allerdings werde ich die Seite nicht nur nicht mehr besuchen, weil es nicht wirklich mein Thema ist, sondern auch weil beim Klick auf einen Termin der verlinkte Beitrag in einem Neuen Fenster geöffnet wird. Das ist für mich ein absolutes No-Go. zur not akzepiere ich noch einen neuen Tab (Registerkarte), aber auch da nur wenn ich nicht ohne die Internet-Seite nicht leben kann. Sorry

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lädt super schnell

Eingetragen von Kirsten1965 (703)
am 17.06.2011 - 10:28 Uhr

Hallo,

habe nun den Kalender aufgerufen und bin hin und her gesprungen. Der Kalender lädt schnell und zuverlässig. Kann Dein Problem nicht reproduzieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

r4s6 schrieb weil beim Klick

Eingetragen von Der Gummibär (6)
am 17.06.2011 - 20:45 Uhr
r4s6 schrieb

weil beim Klick auf einen Termin der verlinkte Beitrag in einem Neuen Fenster geöffnet wird.

Tja, scheint leider ein Verhalten von FullCalendar zu sein, was man aber nicht so einfach anders konfigurieren kann....

Aber gut zu wissen. Mir ist es nicht aufgefallen, weil ich das Öffnen neuer Fenster im Browser generell blockiert habe.

Danke.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Gummibär schrieb r4s6

Eingetragen von manox (16)
am 29.08.2011 - 17:35 Uhr
Der Gummibär schrieb
r4s6 schrieb

weil beim Klick auf einen Termin der verlinkte Beitrag in einem Neuen Fenster geöffnet wird.

Tja, scheint leider ein Verhalten von FullCalendar zu sein, was man aber nicht so einfach anders konfigurieren kann....

Aber gut zu wissen. Mir ist es nicht aufgefallen, weil ich das Öffnen neuer Fenster im Browser generell blockiert habe.

Danke.

Doch, das kann man bei den Format-Einstellungen mit einem Häkchen ändern ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Probleme mit der darstellun der ogg:image Tags.
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • Drupal-Forks und ihre Schwächen/Stärken
  • Lokale Entwicklungsumgebung auf Windows
  • [gelöst]Abhängigkeiten zweier oder mehrerer Inhaltstypen
  • Drupalcenter tot?
  • Was kann ich gegen ständige Blutergüsse tun?
  • Mir gefällt die Drupal Symfony und deren Composer
  • Mir ist da was aufgefallen ;)
  • Matomo Installation
  • Verständnisfrage private_files in Drupal
  • [gelöst] Drupal 7 Forum Beitrag mit Bilder einstellen
Weiter

Neue Kommentare

  • Ach was dass funktioniert
    vor 1 Stunde 32 Minuten
  • Danke für die ausführliche
    vor 3 Stunden 26 Minuten
  • Also Leute ich freue mich ja
    vor 4 Stunden 9 Minuten
  • Was du brauchst ist der
    vor 4 Stunden 14 Minuten
  • Kommt drauf an
    vor 4 Stunden 36 Minuten
  • Kontextfilter und Relationen sind der richtige Ansatz
    vor 21 Stunden 53 Minuten
  • Zusatzfragen
    vor 1 Tag 23 Stunden
  • DDEV verwaltet Container, sowohl Docker als auch andere
    vor 1 Tag 23 Stunden
  • Entwicklungsumgebung ist nicht nur Server
    vor 1 Tag 23 Stunden
  • Danke
    vor 3 Tagen 6 Stunden

Statistik

Beiträge im Forum: 250052
Registrierte User: 20362

Neue User:

  • LilliNELP
  • Wavermype
  • tom082

» Alle User anzeigen

User nach Punkten sortiert:
wla9456
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3855
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 2 User und 7 Gäste online.

Benutzer online

  • dinmikkith
  • C_Logemann

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association