在我的闪存应用程序中,我使用pipwerks scorm包装器来保存不同的scorm值。现在,当我开始节省交互和目标时,需要大量的时间(5-6秒)来节省。这些数组并不大(每个数组有7个元素),为什么要花这么长时间保存它呢?我有本地的LMS服务器,所以这里的网络不是问题。
我怎么能把它装进去?
编辑:刚刚添加了一些日志,似乎没有“重”元素-它们都需要相同的时间来保存。
发布于 2016-05-05 19:23:31
不是你,是他们。
您很可能是SCORM的糟糕实现的牺牲品。通常发生的情况是通过内容“包装器”发送get/set值命令,该内容“包装器”与LMS通信。学生尝试的不是LMS缓存,而是返回数据和设置数据的长时间往返到服务器。这可以等同于1-12秒的实际滞后,这会导致一个小时的玻璃或海滩球在mac上。就像拒绝服务攻击一样。
目标和交互需要生成几组单独的数据,这样“垃圾邮件”就会触发这个延迟。如果LMS使用缓存的尝试,他们只会在提交调用时往返到服务器。10次机会中有9次,这在他们的系统上已经错了很长时间。需要一次大规模的重写来修复它。我将避免列出我在这方面经历过的所有平台,因为其中许多平台收取订阅费,企业公司付费使用他们的服务。不幸的是,这只是一个糟糕的设计。他们的系统正在同步地阻塞对其服务器的调用。250 12 DNS延迟x12调用=糟糕的用户体验.
有人告诉我,“不要打那么多SCORM电话。”“你能阻止它这样做吗”。我也因此而把LMS弄下来了;)在野外,很大比例的SCO不使用目标和交互,所以这些较大的延迟问题都是不受检查的。
如果您成为这个延迟https://cybercussion.com/bookmarklets/SCORM的牺牲品,我的Bookmarklet将突出显示。在查看SCO时使用它,因为它将对API进行一系列状态调用,并为您计算实际延迟。我看过每通电话多达400毫秒!
在设计其API时,LMS实现最终有3种选择。
我会在scorm.com上做烟瘾测试。开发一个可重复的过程,以支持您所遇到的这个问题的平台。即使您的编辑声明它是本地的,我上面突出显示的阻塞调用也会导致延迟。
总帐
发布于 2016-05-06 18:46:04
关于Mark的回答,我同意,听起来LMS是通过同步xmlhttprequest (也就是XHR或AJAX)而不是异步进行处理的。在这里了解更多关于同步和异步的信息:Requests
当使用同步XHR时,在XHR请求完成之前,页面将不会处理任何JavaScript。如果服务器速度慢,这可能需要几秒钟。如果你在彼此附近反复打电话,它们就会加在一起。可以想象,仅仅在几页的时间内处理一些活动就需要一分钟的时间。从用户的角度来看,这门课让人觉得被打断了。
同意Mark的观点,在SCORM中进行测试是确保您的课程正常运行的一个很好的方法,慢的是您的本地LMS,而不是课程本身。
如果您希望改进本地测试环境,并且正在使用本地LMS,请在LMS的JavaScript代码库中查找xmlhttprequest或AJAX,并查看您可以设置为异步。
https://stackoverflow.com/questions/37051112
复制相似问题