2017-08-08 94 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搜索支持。您将需要提出多个请求并在您的最后合并两组语句。