2014-05-15 17 views
0

我正在創建RPG。我原本是在JS對象中存儲NPC對話框。我可以按照自己的想法在一個陣列中循環冗長的對話框。我也可以用K:V對存儲對象。RPG:以DB或JSON格式存儲對話框

話雖這麼說,是它容易/更快管理,存儲和前端檢索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?

enter image description here

 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; 

       } 
      ); 
     } 
+0

比較容易/更快? –

+0

@cmbasnett與數據庫進行比較。閱讀問題。 –

+0

爲什麼不是兩個?鍵/值存儲+ JSON。 – tadman

回答

1

做會做你的第一個代碼段做什麼,但加載通過JSON數據,而不是在頁面中嵌入它的最好的事情。爲每個單獨的對話發送JSON請求在加載時間方面會變得非常昂貴,並且這是不必要的流量。我建議將每個JSON請求的整個任務的對話框加載到服務器。

+0

爲什麼將它作爲JSON存儲比將它嵌入到頁面/加載它更好 – Growler

+0

嗯,我假設所有的對話都不需要立即進行,所以爲了初始頁面加載時間,它會更好如果只加載第一個任務(或任何用戶所在的任務)的對話框,然後根據需要加載下一個。通過一次加載整個任務,服務器的交易量就會減少,並且不需要再次加載已完成的任務。如果你有很多用戶在玩你的遊戲,那麼不必要的帶寬使用量可能會增加。 – aecend