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 - 08: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 - 09: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 - 16: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 - 21: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 - 08: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 - 09: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 - 19: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 - 16: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

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Woche 3 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 3 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 1 Tag
  • Hey danke
    vor 9 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 9 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 9 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 2 Stunden
  • Kannst doch auch alles direkt
    vor 10 Wochen 4 Tagen
  • In der entsprechenden View
    vor 10 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 10 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250236
Registrierte User: 20463

Neue User:

  • ocvk2810
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 31 Gäste online.

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