2009-06-18 4 views
2

Nous sommes dans les rejets de la refonte d'un écran de "vieux style" éditer et soumettre, au style AJAXy avec l'économie automatique toutes les quelques secondes.AJAX menant à plus de "bavardage"

Le résultat sera bien plus, mais beaucoup plus petit allers-retours serveur/db. Par exemple, lorsqu'un utilisateur modifie un champ de textarea, nous sauvegardons automatiquement ses modifications toutes les 60 secondes via AJAX. Actuellement, ils mettraient à jour un ou plusieurs de ces champs, puis soumettraient toute la page, et la page entière serait rechargée.

Nous faisons cela pour rendre la page beaucoup plus accrocheuse pour l'utilisateur - une utilisation évidente d'AJAX. Mais l'un de vous a-t-il rencontré des problèmes de performances serveur/db liés au passage à une telle approche? Y at-il des pièges, il serait bon d'être conscient d'avance d'un point de vue serveur/DB roundtrip?

Merci

+2

J'espère que vous prévoyez de conserver le bouton Soumettre/Enregistrer. – TheTXI

Répondre

2

je l'ai mentionné cette question dans this answer relative à DWR (un framework Java AJAX).

AJAX est séduisant dans ce qu'il offre. Vous obtiendrez (plus probablement) plus de données de déclenchement (en termes de demandes/réponses individuelles). Mon conseil est de surveiller/mesurer cela, et de déterminer ce qui est important à utiliser dans un contexte AJAX, et à quel point le déclenchement est coûteux (en termes de réseau et de processeur). Comme vous l'avez identifié, cela aura un impact sur vos processus serveur et sur les bases de données de sauvegarde.

La mise en cache est peut-être nécessaire pour différents types de données, ou certaines données sont tout simplement trop chères pour être extraites du POV d'une infrastructure AJAX. Vous pouvez mettre en cache à la fin du serveur et (ou bien sûr) dans la page Web elle-même. J'ai vu des sites clients implémenter des quantités importantes de pages Web compatibles AJAX, seulement pour devoir les restreindre ou les annuler, en raison de l'impact imprévu sur le back-end. Avec un peu de sensibilisation et un certain effort de surveillance de l'impact, cela peut souvent être évité, ou au moins compris à l'avance et atténué de manière appropriée.

+0

Effectuez également un test de charge de votre application dans vos environnements de développement/stockage afin de vous assurer que votre application évoluera correctement. En outre, selon votre environnement, quelque chose comme le stockage Google Gears/DOM local peut être utilisé pour enregistrer des progrès à intervalles réguliers du côté client, avec une dernière sauvegarde qui fait la même chose que votre formulaire original; quelque chose à regarder du point de vue de la performance. – ajm

0

Je n'ai jamais rencontré de problèmes de performances en laissant le système, plutôt que l'utilisateur, décider quand il convient de sauvegarder quelque chose dans une base de données.

Je pourrais imaginer quelques problèmes d'intégrité des données, mais je suppose que ce n'est pas important pour vous.

Questions connexes