Nous développons un jeu social basé sur un navigateur, et il s'agit d'un jeu MMORPG. Nous utilisons html/javascript/css comme technologie frontend (en comparaison avec flash). Lorsque l'utilisateur chargera notre jeu pour la première fois, un tas de fichiers sera téléchargé (external js/css) et plusieurs appels ajax seront demandés. La page entière ne sera pas rechargée à moins que l'utilisateur n'actualise la page manuellement. Et nous créons un objet js pour stocker les données spécifiques à l'utilisateur, comme l'argent, le niveau et plus encore. Et il est susceptible de changer au cours des prochaines opérations de l'utilisateur. Nous devons donc synchroniser les données du backend. Un numéro spécial est les données de l'utilisateur peuvent également être mis à jour passivement (par d'autres utilisateurs), cela peut arriver dans un combat par d'autres utilisateurs. alors ma question est comment et quand synchroniser? Jusqu'à maintenant nous avons subi deux étapes, 1) chaque fois que l'utilisateur clique sur les onglets (pour afficher/masquer une div en html) ou des opérations possibles (comme combattre/acheter quelque chose), nous appelons la requête ajax pour obtenir les données de la base de données à chaque fois. 2) similaire à 1) mais nous ajoutons simplement un proxy pour indiquer si les données de l'utilisateur sont modifiées ou non pour réduire la requête de base de données inutile. L'appel ajax ira au proxy en premier.Synchroniser les données entre frontend et backend
pour 1), nous pouvons avoir 70% + inutiles appels ajax et db requêtes
pour 2), nous pouvons avoir 70% + inutile ajax appelle
Maintenant, nous utilisons l'approche de 2). Mais je ne pense pas que ce soit la meilleure solution, car nous avons encore 70% d'appels ajax inutiles. alors existe-t-il une meilleure solution à ce cas d'utilisation?
explications
appel ajax inutile: depuis l'intervalle entre 2 appels ajax, les données de l'utilisateur ne peut pas changer du tout.