1

drupal 6では、hook_blockを使用してブロックに表示しているhtmlを出力するモジュールを作成しました。

そのブロックがロードされたときにのみロードしたいjsファイルがあるので、hook_block内にdrupal_add_js()があります。

この問題を除いて、すべて機能しています。ページを更新すると(同時にキャッシュをクリアするかどうかに関係なく)、古いバージョンのスクリプトが読み込まれることがよくあります。新しいバージョンと古いバージョンは、一見ランダムに表示されます。

正しいバージョンがロードされていることを確認するにはどうすればよいですか?ありがとう。

編集:テーマの.infoファイルを介してロードしているスタイルシートの1つは、同じことを実行しています-ランダムなバージョンがロードされています。したがって、モジュールやブロックに関連するものではなく、一般的な問題のように見えます。

4

1 に答える 1

0

javascriptファイルに満足し、ロックダウンしてキャッシュで使用できるようになるまで、drupal_add_jsに対して「defer」および「cache」引数を使用します。

admin >>パフォーマンスでは、jsとcssを含むディレクティブがあります-それらが非アクティブ化されている場合、drupal_add_*によって追加されたファイルごとに1つのリクエストが行われます。たとえば、jsで前処理がtrueに設定されている場合、drupal_add_jsによって追加されたすべての.info javascriptとスクリプトは、1つの最適化された深くキャッシュされたスクリプトにまとめられます。

<7.0

drupal_add_js($data = NULL, $type = 'module', $scope = 'header', $defer = FALSE, $cache = TRUE, $preprocess = TRUE)

7.0>

drupal_add_js($data = NULL, $options = NULL)

あなたの状況で、スクリプトを開発している場合、またはロードごとに1つを新しくプッシュする必要がある場合は、すべての状況でfalse under $cacheand$preprocessを使用するため、'main.js'のロードは次のようになります。

drupal_add_js(base_path() . '/sites/default/files/myjs/main.js', 
     'core', 
     'header', 
     false, 
     false, 
     false
);

v7 +では、funcargv[1-X]は単純に連想配列にまとめられます。API$optionsを参照してください。

于 2012-08-29T07:54:15.900 に答える