这是我之前发布的解析xAPI语句的问题的后续内容。我得到解析工作,现在我使用下面的代码从ADL LRS获取语句,它拉出前50条记录。有没有办法指定更多记录?谢谢。
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>Get my Statements</title>
<script type="text/javascript" src="tincan.js"></script>
</head>
<body>
<h1>Get statements</h1>
<div id='response'></div>
<script>
var tincan = new TinCan (
{
recordStores: [
{
endpoint: "https://lrs.adlnet.gov/xapi/",
username: "xapi-tools",
password: "xapi-tools",
allowFail: false
}
]
}
);
var container = document.getElementById('response');
tincan.getStatements({
'callback': function (err, result) {
container.innerHTML = (err !== null ? 'ERROR' : parseMyData(result));
}
});
parseMyData = function(result) {
var statements = result.statements;
var output = '';
var name,verb,activity;
for(var i=0;i<statements.length;i++){
// check the statement for a usable name value
// (priority = actor.name, actor.mbox, actor.account.name)
if(statements[i].actor.name != null && statements[i].actor.name != "") {
name = statements[i].actor.name
}else if(statements[i].actor.mbox != null && statements[i].actor.mbox != "") {
name = statements[i].actor.mbox
}else{
name = statements[i].actor.account.name
}
// check the statement for a usable verb value
// (priority = verb.display['en-US'], verb.id)
try{
verb = statements[i].verb.display['en-US'];
}catch(e){
verb = statements[i].verb.id;
}
// check the activity for a usable value
// (priority = definition.name['en-US'], id)
try{
activity = statements[i].target.definition.name['en-US'];
}catch(e){
activity = statements[i].target.id;
}
output += name + ' - ' +
verb + ' - ' +
activity +
'<br>'
}
return output;
}
</script>
</body>
</html>
答案 0 :(得分:0)
请求本身会有更多记录。查看API文档,大多数情况下,您可以传递一个参数来检索记录。
答案 1 :(得分:0)
使用以下代码请求每页设置限制的语句。如果您在没有限制参数或限制为0的情况下发出请求,则服务器允许的最大语句数将在第一页中返回(这是您上面已经执行的操作)。
tincan.getStatements({
params: {
limit: 100
},
'callback': function (err, result) {
container.innerHTML = (err !== null ? 'ERROR' : parseMyData(result));
}
请参阅https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#stmtapiget
要获取其他语句页面,请使用TinCanJS LRS moreStatements方法:https://github.com/RusticiSoftware/TinCanJS/blob/master/src/LRS.js#L766
有关如何创建LRS对象的信息,请参阅http://rusticisoftware.github.io/TinCanJS/。