Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是低效的,我怎样才能循环呢?_Javascript_Html_Tin Can Api - Fatal编程技术网

Javascript 这是低效的,我怎样才能循环呢?

Javascript 这是低效的,我怎样才能循环呢?,javascript,html,tin-can-api,Javascript,Html,Tin Can Api,我试着拉下两个动词和它们的相关语句,这段代码可以工作,但我认识到这是低效的。我尝试将动词放入数组中,然后在每一行中引用该动词命名的数组项,但这引发了一个错误。我可以使用什么代码通过我构建的谓词数组进行循环?多谢各位 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Get 2 verbs</title>

我试着拉下两个动词和它们的相关语句,这段代码可以工作,但我认识到这是低效的。我尝试将动词放入数组中,然后在每一行中引用该动词命名的数组项,但这引发了一个错误。我可以使用什么代码通过我构建的谓词数组进行循环?多谢各位

<!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>

得到两个动词
var text=“”;
ADL.XAPIWrapper.changeConfig({“端点”:”https://lrs.adlnet.gov/xapi/"});            
var search=ADL.XAPIWrapper.searchParams();
搜索['verb']=ADL.verbs.completed.id;
搜索['自']=“2017-08-08T08:34:16Z”;
var res=ADL.XAPIWrapper.getStatements(搜索);
如果(res){
text=JSON.stringify(res);
}              
var text2=“”;
ADL.XAPIWrapper.changeConfig({“端点”:”https://lrs.adlnet.gov/xapi/"});            
var search=ADL.XAPIWrapper.searchParams();
搜索['verb']=ADL.verbs.resume.id;
搜索['自']=“2017-08-08T08:34:16Z”;
var res=ADL.XAPIWrapper.getStatements(搜索);
如果(res){
text2=JSON.stringify(res);
}   
document.getElementById('demo').innerHTML=text+text2;

也许是这样的?当然没有经过测试

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);

如果您询问是否可以在单个请求中使用任一动词返回语句列表,则标准XAPI搜索不支持这一点。您将需要发出多个请求,并将这两组语句合并在一起。

为什么您认为这段代码效率低下?