Uma grande quantidade de tokens reduz a velocidade de tudo - Tokens de espaço reservado


8

alguém de vocês teve um problema com uma quantidade muito grande de tokens? Por ter poucos tipos de conteúdo (~ 8) com vários campos (~ 5-10 cada), o módulo Token gera uma tabela muito grande com tokens de substituição. É por isso que eu tive que aumentar a memória disponível no settings.php para evitar drupal de erro de php. Defino 512M para que ele gere a tabela de saída agora, mas é tão lento que congela o Chrome.

Acontece onde eu tenho essa visualização dos tokens disponíveis. Portanto, ele pode ser encontrado em Pathauto ou Breadcrumbs personalizados.

É assim que parece na visualização HTML do Google Chrome:

captura de tela


é assim que parece na visualização html do Chrome: img687.imageshack.us/img687/589/zrzutekranu20110916o153.png ... poucos módulos, poucos tipos de conteúdo, poucos campos ... e multiplica o tamanho final da saída.
wtk

Ok, eu encontrei o culpado. Isso ocorreu por causa do módulo Token Entity (ele gera tokens para itens que normalmente não estão disponíveis).
wtk 16/09/11

Eu deveria e eu faria, se não fosse uma regra estúpida, que, como novo usuário registrado, não poderia ter feito isso tão rápido:] Agora vou postar a solução.
Wtk 19/09/11

Respostas:



1

O Token Tweaks funcionou para mim, mas se você tem um desdém geral por adicionar mais módulos, pode tentar os patches em Impedir tokens recursivos .

Você também pode mudar TOKEN_MAX_DEPTHem token.module. Para mim, alterar o valor para 1levou a um tempo de carregamento de 1 segundo. 2fez 5.23 segundos. 3ou mais praticamente travou o navegador. Você provavelmente ainda deseja fazer um patch da alteração nesse caso e / ou manter um backup do token.modulearquivo, ou fazer do Hacked parte do processo de atualização do módulo.


1

Você pode parar a token_helprenderização no Drupal 7.

Se você não precisar de tokens em um determinado formulário e muitos campos em muitos tipos de conteúdo estiverem causando problemas de desempenho, substitua a função de tema pela lista de tokens disponíveis e substitua-a por um link para a mesma página com um conjunto de variáveis ​​em que você gostaria de ver os tokens.

Por padrão, ele não renderiza os tokens, mas se você deseja exibir uma página com os tokens, pode:

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'))); 
  }
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.