【问题标题】:RPG: store dialog in DB or JSONRPG:将对话存储在 DB 或 JSON 中
【发布时间】:2014-05-15 00:50:15
【问题描述】:

我正在创建一个角色扮演游戏。我最初将 NPC 对话框存储在 JS 对象中。我可以根据需要循环浏览数组中的冗长对话框。我还可以使用 K:V 对存储对象。

话虽如此,在前端的 JSON/JS 对象中管理、存储和检索对话框是否更容易/更快

var dialog = {
    quests : {
        quest1 : {  
            NPCName: {      
                "Task 1 - Introductions" :
                {
                    "dialog" :
                    [
                        "I'm Pedro",
                        "Welcome to my neighborhood",
                         etc...,
                    ],
                    "wordBank" :
                    {
                        "Hola" : "Hello",
                        "Como" : "What",         
                    }

或者在数据库中,您通过 AJAX 请求检索并像这样解析为 JSON?

        function getData (functionToRun) {  
            $.getJSON("phpscripts.php", {"_functionToRun" : functionToRun},
                function (returned_data) {                      
                    var nm = returned_data.task_name,
                        spn = returned_data.task_spanish,
                        rsp = returned_data.task_userResponse;

                }
            );
        }   

【问题讨论】:

  • 比什么更容易/更快?
  • @cmbasnett 与数据库相比。阅读问题。
  • 为什么不两者兼而有之?键/值存储 + JSON。

标签: javascript jquery mysql ajax json


【解决方案1】:

最好的做法是执行您在第一个代码 sn-p 中所做的事情,但通过 JSON 加载该数据,而不是将其嵌入页面中。为每个单独的对话框发送 JSON 请求会因加载时间而变得昂贵,而且是不必要的流量。我建议将每个 JSON 请求加载到服务器的整个任务对话框。

【讨论】:

  • 为什么存储为 JSON 比嵌入页面/加载它更好
  • 好吧,我假设所有的对话框都不是立即需要的,所以为了初始页面加载时间,如果只有第一个任务的对话框(或任何一个)会更好用户所在的任务)被加载,然后根据需要加载下一个。通过一次加载整个任务,与服务器的事务更少,并且不需要再次加载已完成的任务。如果您有大量用户在玩您的游戏,那么不必要的带宽使用真的会增加。
猜你喜欢
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 2023-03-09
  • 2012-03-20
  • 2023-03-08
  • 1970-01-01
  • 2014-06-29
  • 2020-04-29
相关资源
最近更新 更多