Eine große Anzahl von Token verlangsamt alles - Platzhalter-Token

8

Hatte jemand von euch ein Problem mit zu vielen Token? Aufgrund der wenigen Inhaltstypen (~ 8) mit einer Reihe von Feldern (jeweils ~ 5-10) generiert das Token-Modul eine zu große Tabelle mit Ersatz-Token. Aus diesem Grund musste ich den verfügbaren Speicher von settings.php erhöhen, um Drupal aufgrund von PHP-Fehlern zu vermeiden. Ich habe 512M so eingestellt, dass es jetzt die Ausgabetabelle generiert, aber es ist so langsam, dass es Chrome einfriert.

Es passiert, wenn ich diese Vorschau der verfügbaren Token habe. So kann es in Pathauto oder Custom Breadcrumbs gefunden werden.

So sieht es in der Google Chrome HTML-Vorschau aus:

Bildschirmfoto

wtk
quelle
So sieht es in der Chrome-HTML-Vorschau aus: img687.imageshack.us/img687/589/zrzutekranu20110916o153.png ... wenige Module, wenige Inhaltstypen, wenige Felder ... und die endgültige Ausgabegröße multipliziert.
WTK
Ok, ich habe den Täter gefunden. Dies lag am Token-Entity-Modul (es generiert Token für Dinge, die normalerweise nicht verfügbar sind).
WTK
Ich sollte und ich würde, wenn nicht eine dumme Regel, dass ich als neu registrierter Benutzer das nicht so schnell hätte tun können:] Jetzt werde ich eine Lösung veröffentlichen.
WTK

Antworten:

1

Token Tweaks haben bei mir funktioniert, aber wenn Sie generell keine Lust haben, weitere Module hinzuzufügen, können Sie die Patches unter Rekursive Token verhindern ausprobieren .

Sie können auch ändern TOKEN_MAX_DEPTHin token.module. Für mich führte das Ändern des Werts 1zu einer Ladezeit von 1 Sekunde. 2machte es 5,23 Sekunden. 3oder mehr ziemlich abgestürzt den Browser. In diesem Fall möchten Sie wahrscheinlich immer noch einen Patch für die Änderung token.moduleerstellen und / oder eine Sicherungskopie der Datei erstellen oder Hacked zu einem Teil Ihres Modulaktualisierungsprozesses machen .

cdmo
quelle
1

Sie können das token_helpRendern in Drupal 7 beenden .

Wenn Sie in einem bestimmten Formular keine Token benötigen und zu viele Felder in zu vielen Inhaltstypen zu Leistungsproblemen führen, können Sie die Themenfunktion für die Liste der verfügbaren Token ersetzen und durch einen Link zur gleichen Seite mit einem ersetzen Variablensatz, in dem Sie die Token sehen möchten.

Standardmäßig werden die Token nicht gerendert. Wenn Sie jedoch eine Seite mit den Token anzeigen möchten, können Sie:

function nys_utils_theme_registry_alter(&$vars) {
  $vars['token_tree']['function'] = 'nys_utils_theme_token_tree';   
}

function nys_utils_theme_token_tree($variables) {
  if(isset($_GET['show_tokens']) && $_GET['show_tokens'] == 1) {
    return theme_token_tree($variables);
  } else {
     return l('show tokens',$_GET['q'], array('query' => array('show_tokens' => '1'))); 
  }
}
oknate
quelle