web-dev-qa-db-ja.com

大量のトークンがすべてを遅くする-プレースホルダートークン

トークンが多すぎるという問題が発生しましたか?多数のフィールド(それぞれ〜5〜10)を含むコンテンツタイプがほとんどない(〜8)ため、トークンモジュールは置換トークンを含む非常に大きなテーブルを生成します。 drupal from php error。を回避するために、settings.phpの使用可能なメモリを増やす必要があったのはこのためです。512Mに設定すると、出力テーブルが生成されますが、非常に遅いため、Chromeがフリーズします。

利用可能なトークンのプレビューがある場合に発生します。したがって、パスオートまたはカスタムブレッドクラムにあります。

Google Chrome HTMLプレビューでは次のようになります。

screenshot

8
wtk

ノード参照+エンティティトークンが巨大なトークンツリーUIテーブルHTMLを作成する で、このような問題のいくつかの解決策を見つけることができます。

Token tweaks モジュールを使用することも役立ちます。私は試しましたが、うまくいきます。

トークンの微調整を提供します(主にパフォーマンスを向上させるため)

  • トークンタイプまたは特定のトークンを無効にします。
  • トークンツリーUIのデフォルトの深さ制限を変更します。
6
wtk

Token Tweaksは私のために働きました、しかしあなたがより多くのモジュールを追加するための一般的な軽蔑があるなら、あなたはパッチを Prevent recursive tokens で試すことができます。

TOKEN_MAX_DEPTHtoken.moduleも変更できます。私にとって、値を1に変更すると、読み込み時間が1秒になりました。 2は5.23秒にしました。 3以上でブラウザがクラッシュしました。この場合でも、おそらく変更のパッチを作成したり、token.moduleファイルのバックアップを保持したり、モジュール更新プロセスの一部として Hacked を作成したりすることをお勧めします。

1
cdmo

token_helpレンダリングDrupal 7。

特定のフォームにトークンが必要なく、コンテンツタイプが多すぎるためにフィールドが多すぎるためにパフォーマンスの問題が発生している場合は、利用可能なトークンのリストのテーマ関数を置き換えて、同じページに戻るリンクに置き換えることができます。トークンを確認する変数セット。

デフォルトでは、トークンはレンダリングされませんが、トークンを含むページを表示する場合は、次のことができます。

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'))); 
  }
}
1
oknate