我们目前正面临实施SCORM LMS系统的设计问题.例如,API定义了一个函数LMSCommit,它必须返回'true'或'false'.在该方法中,我们的LMS必须使用包含其参数中的成功或失败消息的回调函数对服务器端服务进行异步调用.我们声称,这根本不可能!然而,我们认为值得向一些专业人士询问我们是否遗漏了一些东西.
SCO(对我们没有影响)调用这样的方法:
var result = LMSCommit('');
Run Code Online (Sandbox Code Playgroud)
我们的LMS(对我们的影响)我们实现这样的事情:
function LMSCommit(useless) {
callOurServiceFunction(function(Status) {
// what am I supposed to do here in order to put status into
// the return value of the outer function???
}
// fake true as the callourServiceFunction returned immediatly,
// no idea how I can use Status to create a return value
return 'true';
}
Run Code Online (Sandbox Code Playgroud)
我们在这里错过了一些花哨的技巧,还是SCORM标准只是"有争议"?
它通常使用异步代码实现,返回一个相当无价值的"true"值.这是SCORM课程开发人员所熟知的,他们已经学会了不依赖于Commit返回值来处理任何重要的事情.在这种情况下,所有返回值均意味着触发了ajax请求.
如果使用同步方法实现Commit,则在等待返回值时,该过程似乎会滞后并停止,这将保证大量投诉并声称您的SCORM引擎已损坏.
穿着鞋子的人非常沮丧,但遗憾的是,你真的无能为力.
那些不熟悉SCORM的人有一点背景知识:
SCORM是规范的汇编,而不是真正的标准,在2004年收到了它的最后一次重大更新.(从那时起的更新很小,没有重大的架构变化.)这意味着它已经十年了.SCORM 1.2甚至更老了.ADL已经宣布他们不会再更新SCORM了 - 正如他们所说,盖子已关闭.
为了把事情的角度,最后一个主要SCORM更新发布时,IE6是占主导地位的浏览器,谷歌Chrome和iPhone不存在,雅虎和RealPlayer是相关的,Facebook的是一个宿舍里的项目,每个人都以为Adobe Flex和RIA的是未来的方式.现在这是一个不同的世界......如果他们重新开始,我相信他们会走另一条路.这就是xAPI(又名Tin Can)的选择; 它使用不同的通信模型(RESTful API),可用于替换支持xAPI的LMS中的SCORM.(注意xAPI尚未得到广泛支持.)
xAPI链接是否有人对此感兴趣:
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |