0

伪代码的伪代码Select Children Process [SR.1]Randomize Children Process [SR.2]重度表明这些过程是要多次运行的,尽管对于SR.1未定义进行选择时,没有定义行为onEachNewAttempt

由于 theSequencing Request Process [SB.2.12]Navigation Request Process [NB.2.1]期望的 Available Children 都被选择/随机化,并且唯一在遍历各种 Available Children之后Content Delivery Environment Process [DB.2]初始化新尝试,LMS 似乎意味着在初始化期间运行这两个过程在尝试交付第一个活动或处理任何请求之前,活动树本身。

然而,这并没有解释什么时候SR.2应该重新运行。由于DB.2通过迭代从根到指定活动的活动路径来创建新的尝试进度信息,因此沿途随机化每个活动的可用子项将导致指定活动在活动树中的位置在选择后发生变化,这似乎不直观。此外,如果尝试实现onEachNewAttemptSR.1一点也可能导致所选活动从可用活动中消失(尽管这可以解释为什么它的行为在 SCORM 中未定义)。

我的理解是,可用子项旨在初始化为所有子项的列表,然后SR.1SR.2其应用于从根开始的所有活动,SR.2然后将其重新应用于DB.2路径中的每个活动,尽管这会改变顺序的活动。这是正确的还是我错过了什么?

4

1 回答 1

0

在重新阅读 SN-4-48 中的第 4.7 节后,似乎答案是选择和随机化确实应该在测序会话开始时发生一次(即在初始化时),然后再发生一次End Attempt Process [UP.4](尽管onEachNewAttempt实际上它声明“在第一次尝试之前”,也可以理解为指的是交付过程,DB.2)。

让这有点尴尬的是,UP.4它应用于许多地方,包括在交付之前(DB.2

于 2021-09-26T13:06:34.510 回答