Question

Nous avons un site écrit dans Drupal 6.

Nous voulons utiliser le mécanisme de mise en cache de Drupal pour améliorer les performances, mais quand nous le mettions, nous avons trouvé des problèmes parce que notre site a des données de session affichées sur chaque page. Le système de mise en cache de Drupal ne fonctionne que pour la page de contenu statique, et nos données de session signifie effectivement qu'aucun de nos pages sont statiques.

Nous avons mis au point deux solutions à ceci:

  1. Réécrire le bloc qui affiche les données de session telle qu'elle charge les données non statiques à l'aide d'Ajax, de sorte que le contenu principal HTML est alors statique. Les bas-côtés de ce sont que cela signifie beaucoup de travail, et que cela réduira la fonctionnalité pour les utilisateurs activés non Javascript et des navigateurs spécialisés (c.-à-lecteurs d'écran).

  2. Déplacer les données de session à un iframe ou similaire. Cela sonne juste mal et je ne veux pas le faire, mais il résoudre le problème, je pense.

  3. ou de trouver un système de mise en cache alternative qui nous permettra de mettre en cache le site d'une manière qui peut faire face à un qu'il y ait un petit bloc de données dynamiques sur chaque page. Ceci est notre option préférée, mais nous n'avons pas été en mesure de faire des progrès sur la recherche de quoi que ce soit, d'où la question ici.

Donc, si quelqu'un a des suggestions qui pourraient nous aider avec l'option 3, s'il vous plaît laissez-nous savoir. Merci.

(ps - Je sais que Drupal 7 ne dispose d'un système de mise en cache amélioré qui pourrait aider, mais nous ne sommes pas prêts à passer à D7 encore)

[EDIT] Ne l'ont pas fait beaucoup de progrès à ce sujet, donc je vais l'ouvrir à une prime.

J'ai eu un coup d'œil sur la façon dont traite Ubercart une situation similaire (puisqu'il est l'un des plus populaires modules Drupal et a fondamentalement le même problème à résoudre comme nous). Ils se déplacer en ayant l'affichage du bloc info panier texte statique lorsque l'utilisateur n'est pas connecté (ie « Cliquez ici pour voir votre panier »), et ne montrant que les données de panier de dynamique sur chaque page lorsque l'utilisateur est connecté. Nous ne se sentent pas cela résout effectivement le problème; juste élude, et ce n'est pas ce que nous voulons. Mais je suis inquiet que si Ubercart a eu recours à ce faire de cette façon, il peut se révéler être la seule option.

Était-ce utile?

La solution

Ajax blocs.

Une solution plus simple que Authcache est blocs Ajax.

http://drupal.org/project/ajaxblocks

fonctionne bien, et de ce que je me souviens qu'il gère les utilisateurs sans js assez bien.

Autres conseils

Avez-vous regardé utilisateur Page assermentée Mise en cache (Authcache) Module ? Il fonctionne de façon similaire à ce que vous décrivez dans l'option 1 ci-dessus.

Une autre solution serait d'utiliser une porte ESI pour rendre vos pages comme un assemblage de blocs. Il y a quelques projets autour, je ne suis pas expert, mais la recherche Google pourrait vous donner quelques idées.

PS:. Vous aurez le même problème avec D7, la mise en cache est plus ou moins la même

Vous pouvez consulter ce module: http://drupal.org/project/blockcache_alter . Je ne sais pas si cela va accomplir ce que vous recherchez ou non, mais il pourrait aider à vous donner un aperçu de la mise en cache du bloc.

En outre, il y a beaucoup de grandes ressources de performance ici qui pourraient conduire à quelque chose d'utile: http: // drupal. org / noeud / 326504

mon problème est très similaire. Selon un cadre de la session, l'arrière-plan du corps change. Je pourrais ajouter une classe à la balise body avec jQuery, mais je ne sais pas si cette performance va bien regarder.

Je vais le tester et le dos du rapport.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top