2009-12-24 2 views
2

L'utilisateur ouvrait deux mêmes URL dans le navigateur, si l'utilisateur passait en mode d'édition d'un enregistrement de données dans la première page mais qu'il faisait également appel ajax pour supprimer le même enregistrement DB dans l'autre page et la table de données a également supprimé une ligne pour cette opération.Comment synchroniser les données entre les pages Web au cas où l'utilisateur ouvrait deux mêmes URL avec un ID utilisateur

Que dois-je faire maintenant, comment puis-je synchroniser les données entre les deux pages? ou dois-je faire quelque chose?

Quelle est la meilleure solution?

Répondre

0

On dirait que vous recherchez une solution Comet.

départ ape-project.org il est assez nouveau, mais semble facile (ish)

0

Il existe de nombreuses approches pour résoudre ce problème. Ils se résument généralement à la question de savoir combien d'état vous conservez du côté client (c'est-à-dire, quelle quantité d'informations la page client peut-elle inclure dans les requêtes au serveur).

L'une des solutions les plus propres est celle que vous voyez souvent ici, ainsi que d'autres sites majeurs comme Twitter. La page du client demande au serveur toutes les quelques secondes si les enregistrements pertinents pour la page en cours ont changé (par conséquent, le seul état dont vous avez besoin est l'horodatage du dernier chargement de la page). Si c'est le cas, vous montrez à l'utilisateur une sorte de message d'invite/d'erreur indiquant que la page est obsolète et qu'ils doivent être rechargés.

Cela est fait chaque fois qu'une réponse est affichée pendant que vous consultez la page. Twitter indique quand de nouveaux tweets sont disponibles (pour un utilisateur donné ou pour une recherche).

Alternativement, une approche plus dynamique est souvent utilisée par les applications ajax beaucoup plus lourdes qui vont effectivement charger automatiquement des choses comme de nouveaux commentaires ou messages quand ils deviennent disponibles. Cela nécessite de mieux connaître ce qui a déjà été chargé et ce qui n'a pas et où le mettre dans la page.

Pour les ressources qui peuvent être vraiment supprimées, je préfère généralement la première option mais à bien des égards c'est une question de préférence.

Questions connexes