2017-08-08 65 views
-1

我試圖拉下兩個動詞及其相關的語句,這段代碼有效,但我認識到它效率低下。我試圖把動詞放在一個數組中,然後引用動詞被命名但是拋出錯誤的每一行中的數組項。我可以使用哪些代碼通過構建的動詞數組來創建此循環?謝謝。這是低效率的,我該如何循環呢?

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Get 2 verbs</title> 
     <script src="xapiwrapper.min.js"></script> 
    </head> 
    <body> 
     <div id='demo'></div> 
     <script> 

       var text = ""; 
       ADL.XAPIWrapper.changeConfig({"endpoint":"https://lrs.adlnet.gov/xapi/"});    
       var search = ADL.XAPIWrapper.searchParams(); 
       search['verb'] = ADL.verbs.completed.id; 
       search['since'] = "2017-08-08T08:34:16Z"; 
       var res = ADL.XAPIWrapper.getStatements(search); 
       if (res) { 
        text = JSON.stringify(res); 
        }    

       var text2 = ""; 
       ADL.XAPIWrapper.changeConfig({"endpoint":"https://lrs.adlnet.gov/xapi/"});    
       var search = ADL.XAPIWrapper.searchParams(); 
       search['verb'] = ADL.verbs.resumed.id; 
       search['since'] = "2017-08-08T08:34:16Z"; 
       var res = ADL.XAPIWrapper.getStatements(search); 
       if (res) { 
        text2 = JSON.stringify(res); 
        } 

      document.getElementById('demo').innerHTML = text + text2; 
     </script> 
    </body> 
</html> 
+0

您爲什麼認爲這段代碼效率低下? –

回答

0

也許是這樣的呢?當然沒有經過測試。

var configs = [ 
    { 
    endpoint: 'https://lrs.adlnet.gov/xapi/', 
    verb: ADL.verbs.completed.id, 
    since: "2017-08-08T08:34:16Z" 
    }, 
    { 
    endpoint: 'https://lrs.adlnet.gov/xapi/', 
    verb: ADL.verbs.resumed.id, 
    since: "2017-08-08T08:34:16Z" 
    } 
]; 

var out = ''; 
configs.forEach(function(cfg) { 
    ADL.XAPIWrapper.changeConfig({"endpoint":cfg.endpoint}); 
    var search = ADL.XAPIWrapper.searchParams(); 
     search['verb'] = cfg.verb; 
     search['since'] = cfg.since; 
    var res = ADL.XAPIWrapper.getStatements(search); 
    if (res) { 
    out += JSON.stringify(res); 
    } 
}); 

console.log(out); 
+1

太棒了,效果很好。 –

0

如果你問,如果你可以返回一個請求使用任何動詞語句的列表,這不是由標準XAPI搜索支持。您將需要提出多個請求並在您的最後合併兩組語句。