我们正在开发一款基于浏览器的社交游戏,它是一款MMORPG游戏。我们使用 html/javascript/css 作为前端技术(与 flash 相比)。当用户第一次加载我们的游戏时,会下载一堆文件(外部 js/css)并且会请求几个 ajax 调用。除非用户手动刷新页面,否则不会再次加载整个页面。我们创建一个 js 对象来存储用户特定的数据,如现金、级别等。并且在用户即将进行的操作过程中可能会发生变化。所以我们需要从后端同步数据。一个特殊的问题是用户的数据也可以被动更新(由其他用户),这可能发生在其他用户的战斗中。所以我的问题是如何以及何时同步?
到目前为止,我们经历了两个阶段,1)当用户点击标签(在 html 中显示/隐藏 div)或可能的操作(比如打/买东西)时,我们每次调用 ajax 请求从数据库中获取新数据. 2) 与1) 类似,但我们只是添加了一个代理来指示用户的数据是否更改,以减少无用的数据库查询。ajax 调用将首先转到代理。
对于 1) 我们可能有 70%+ 无用的 ajax 调用和数据库查询
2)我们可能有 70%+ 无用的 ajax 调用
现在我们使用 2) 的方法。但我不认为这是最好的解决方案,因为我们仍然有 70%+ 无用的 ajax 调用。那么这个用例有更好的解决方案吗?
解释
无用的ajax调用:由于两次ajax调用之间的间隔,用户数据可能根本没有变化。