Drupal6で書かれたサイトがあります。
Drupalのキャッシュメカニズムを使用してパフォーマンスを向上させたいのですが、オンにすると、サイトのすべてのページにセッションデータが表示されるため、問題が見つかりました。Drupalのキャッシングシステムは静的コンテンツページに対してのみ機能し、セッションデータは事実上どのページも静的ではないことを意味します。
これに対する2つの解決策を考え出しました。
Ajaxを使用して非静的データをロードするようにセッションデータを表示するブロックを書き直して、メインのHTMLコンテンツが静的になるようにします。これの欠点は、かなりの作業を意味することと、Javascriptに対応していないユーザーや特殊なブラウザ(スクリーンリーダーなど)の機能が低下することです。
セッションデータを
iframe
または同様のものに移動します。これは間違っているように聞こえ、私はそれをしたくありませんが、それは問題を解決すると思います。または、すべてのページに動的データの小さなブロックがあることに対処できる方法でサイトをキャッシュできる代替のキャッシュシステムを見つけます。これは私たちが好むオプションですが、何も見つけることができていないので、ここで質問します。
したがって、オプション3で役立つ提案があれば、お知らせください。ありがとうございました。
(ps-Drupal 7には、これに役立つ可能性のある改善されたキャッシングシステムがあることは知っていますが、まだD7に移行する準備ができていません)
[編集]これについてはあまり進歩していないので、私はそれを賞金に開放します。
Ubercartが同様の状況にどのように対処するかを調べました(これは最も人気のあるDrupalモジュールの1つであり、基本的に私たちと同じ問題を解決する必要があるためです)。ユーザーがログインしていないときにカート情報ブロックに静的テキストを表示させ(つまり、「バスケットを表示するにはここをクリック」)、ユーザーがログインしているときにすべてのページに動的カートデータのみを表示することで回避します。これが実際に問題を解決するとは思わないでください。それはそれを回避するだけであり、それは私たちが望んでいることではありません。しかし、Ubercartがこの方法でそれを行うことに頼った場合、それが唯一の選択肢であることが判明するかもしれないのではないかと心配しています。