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


8

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

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

これは、Google Chrome HTMLプレビューで次のように表示されます。

スクリーンショット


これはクロームHTMLプレビューでどのように見えるかです:img687.imageshack.us/img687/589/zrzutekranu20110916o153.png ...いくつかのモジュール、いくつかのコンテンツの種類、いくつかのフィールド...、それが最終的な出力サイズを乗算します。
wtk '16

はい、犯人を見つけました。これは、トークンエンティティモジュールが原因でした(通常は使用できないものに対してトークンを生成します)。
wtk '16

私はすべきであり、そうでないとしても、新しく登録したユーザーとしてはそんなに速くはできなかったでしょう:]次に、解決策を投稿します。
wtk

回答:


6

このような問題のいくつかの解決策は、ノード参照+エンティティトークンで作成され、巨大なトークンツリーUIテーブルHTMLを作成します

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

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

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

1

Token Tweaksは私にとってはうまくいきましたが、モジュールを追加することに対する一般的な軽蔑がある場合は、Prevent recursive tokensでパッチを試すことができます。

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


1

token_helpDrupal 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'))); 
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.