2010-11-18 3 views
0

J'ai une page web qui utilise AJAX, MySQL et un simple fichier PHP pour récupérer du contenu pour le corps de mon site et le placer dans le corps de la page. Fondamentalement, l'ensemble du site est une page dynamique qui utilise jQuery et le plugin historique pour garder tous les liens signetables et Back/Forward capable.Optimiser le site AJAX pour utiliser le moins de ressources

Je veux optimiser mon site pour utiliser le moins de ressources possible (côté serveur). À l'heure actuelle, à chaque fois qu'un internaute clique sur un lien vers une autre page de mon site, la page PHP est appelée et une connexion à la base de données est créée, le contenu est extrait de la base de données et placé sur la page avec JavaScript.

Serait-il préférable d'avoir à la place le fichier PHP récupérer un fichier en cache qui contient le contenu, puis l'envoyer au navigateur? Je veux quand même que mes pages soient aussi à jour que possible, donc je pensais plutôt avoir une colonne dans la table avec mon contenu qui indique sa date de modification, et, si le fichier en cache est plus ancien, chargez les données dans la table et remplacez le fichier mis en cache. Cependant, cela ferait en sorte que le script PHP crée une connexion à la base de données ET vérifie l'heure de modification du fichier mis en cache.

Quelle est la meilleure solution?

Répondre

2

Lorsque vous mettez à jour les données dans la base de données, supprimez également toute version mise en cache des données correspondantes. De cette façon, vous pouvez faire en sorte que le fichier php vérifie s'il existe une version en cache du fichier.

S'il n'y en a pas, alors connectez-vous à la base de données et cachez ces données et renvoyez-la sinon, retournez simplement la version mise en cache. De cette façon, vous n'établissez une connexion à la base de données que si aucune version en cache n'existe.

+0

Merci, je ne peux pas croire que je n'y ai pas pensé moi-même! J'ai fait un backend personnalisé pour mettre à jour les données dans ma base de données, donc je vais juste le faire régénérer un fichier cache chaque fois que je mettrai à jour la page. – Steve

Questions connexes