2011-11-04 4 views
4

J'ai un site qui affiche une liste d'articles, avec des filtres de catégorie. Les filtres peuvent être activés et désactivés et la liste d'articles s'ajustera automatiquement.Dilemme d'efficacité: utiliser AJAX ou non?

Actuellement, je le fais quand on clique sur les filtres, AJAX fait une demande à un script qui interroge la base de données en fonction des filtres sélectionnés, puis les résultats sont sortis à l'utilisateur.

Est-ce une méthode inefficace? L'autre idée que j'avais récemment était de simplement interroger la base de données pour CHAQUE article une fois que la page se charge. Ensuite, au lieu de faire des requêtes AJAX, les filtres basculent l'élément d'affichage de chaque message en conséquence.

Cela semble beaucoup mieux d'une idée que d'utiliser AJAX, mais je voulais obtenir d'autres avis sur la méthode concernant l'efficacité et la sémantique.

Répondre

2

Cela dépend vraiment du nombre d'articles que vous avez. S'il y en a des centaines ou des milliers, vous économiserez probablement le traitement en faisant des recherches sur AJAX. Sinon, le filtrage côté client a plus de sens.

+0

ok, il y a un nombre beaucoup plus petit que celui , seulement environ 50 en ce moment. Merci! – jchmski

1

Je suppose que cela dépend du nombre de lignes que vous essayez de mettre en cache. Si c'est moins que 1000 alors je le mettrais probablement en cache mais si c'est plus que ça, vous pouvez utiliser AJAX. AJAX est inefficace en général en raison des contraintes liées au fait que les données circulent sur http.

2

Tout dépend de vos numéros spécifiques. Combien de visiteurs avez-vous? Quelle est la taille de la page à charger? Combien de secondes augmentez-vous le chargement de la page pour charger tous les articles. En règle générale, si vos articles ne sont pas très nombreux, je suggère de les charger tous en même temps, l'utilisateur bénéficie d'un chargement plus rapide et vous facilite la vie car vous n'avez pas à écrire un service spécifique pour charger les articles un par un .

Cela dit votre solution ajax n'est pas inefficace et c'est la meilleure solution si le nombre d'articles augmente.

0

Comment faites-vous cette requête? GET avec params?

Si oui, vous pouvez lire environ varnish pour le mettre en cache. Plus de soucis à ce sujet.

La première requête sera mise en mémoire cache. Les autres ne toucheront jamais le DB ni le script, juste la réponse mise en cache.

Configurer le vernis expire ce en 2 - 2 minutes et une demande de haute performance (même si des millions demandent ce AJAX, une seule requête sera faite dans DB)