Una gran cantidad de tokens ralentiza todo: tokens de marcador de posición


8

¿Alguno de ustedes tuvo un problema con una cantidad demasiado grande de tokens? Debido a que tiene pocos tipos de contenido (~ 8) con un montón de campos (~ 5-10 cada uno), el módulo de token genera una tabla demasiado grande con tokens de reemplazo. Es por eso que tuve que aumentar la memoria disponible settings.php para evitar drupal por error de php. Configuré 512M para que genere la tabla de salida ahora, pero es tan lento que congela Chrome.

Sucede donde tengo esta vista previa de tokens disponibles. Por lo tanto, se puede encontrar en Pathauto o Custom Breadcrumbs.

Así es como se ve en la vista previa HTML de Google Chrome:

captura de pantalla


así es como se ve en la vista previa html de Chrome: img687.imageshack.us/img687/589/zrzutekranu20110916o153.png ... pocos módulos, pocos tipos de contenido, pocos campos ... y multiplica el tamaño de salida final.
wtk

Ok, encontré al culpable. Fue debido al módulo Token Entity (genera tokens para cosas que normalmente no están disponibles).
wtk

Debería y lo haría si no fuera una estúpida regla de que, como nuevo usuario registrado, no podría haberlo hecho tan rápido:] Ahora publicaré la solución.
wtk

Respuestas:



1

Token Tweaks funcionó para mí, pero si tienes un desdén general por agregar más módulos, puedes probar los parches en Prevenir tokens recursivos .

También puede cambiar TOKEN_MAX_DEPTHen token.module. Para mí, cambiar el valor a 1llevó a un tiempo de carga de 1 segundo. 2lo hizo 5.23 segundos. 3o más se estrelló el navegador. Probablemente aún desee hacer un parche del cambio en este caso y / o mantener una copia de seguridad del token.modulearchivo, o hacer que Hackeado sea parte del proceso de actualización de su módulo.


1

Puede dejar de token_helprenderizar en Drupal 7.

Si no necesita tokens en un formulario determinado y demasiados campos en demasiados tipos de contenido están causando problemas de rendimiento, puede reemplazar la función de tema para la lista de tokens disponibles y reemplazarla con un enlace a la misma página con un conjunto de variables donde le gustaría ver los tokens.

De manera predeterminada, no representará los tokens, pero si desea ver una página con los tokens puede:

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'))); 
  }
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.