Javascript 当视图/控制器需要在同一个文件中时,构造js应用程序的最佳方法是什么

Javascript 当视图/控制器需要在同一个文件中时,构造js应用程序的最佳方法是什么,javascript,model-view-controller,scorm,Javascript,Model View Controller,Scorm,我正在构建一个学习应用程序,其中有许多不同的页面类型,学习者将通过这些页面进行活动。它将是符合SCORM的学习对象 这是我到目前为止的结构 application/ models/ scorm.js sequence.js session.js pagetypes/ multichoice.js truefalse.js basic.js utilities/ jquery.js api.js 我的页面类型负责查看

我正在构建一个学习应用程序,其中有许多不同的页面类型,学习者将通过这些页面进行活动。它将是符合SCORM的学习对象

这是我到目前为止的结构

application/
  models/
    scorm.js
    sequence.js
    session.js

  pagetypes/
    multichoice.js
    truefalse.js
    basic.js

  utilities/
    jquery.js
    api.js
我的页面类型负责查看和控制,我应该把它们分开吗?我将它们组合在一起的原因是,当我构建一个新的页面类型时,我可以将其放入该文件夹中,代码会立即识别它


你们觉得怎么样?amidoinrite?

使用JavaScript,可能很难将其分离出来,因为它离视图非常近。只要数据与实际视图分离(在您的示例中看起来就是这样),这将是一个很好的设计。我认为页面类型是更多的控制器,HTML是视图。最重要的部分是保持模型与视图分离。除非您试图构建可重用的JavaScript/HTML组件,否则页面类型可以模糊控制器和视图的角色

我猜您是在根据页面交互类型划分方法

我看没有任何理由不按你的方式做。只要sco需要的一切都在清单中,您就可以根据需要细分脚本。分离不同的页面类型可能只会节省一点加载时间。。。但是,只有当您只将所需内容加载到HTML页面中时,您实际上是在sco会话中导航页面。如果您将所有脚本加载到单个HTML页面中,然后动态更改页面div的内容,那么您的脚本将全部加载一次&您还可以为所有页面类型脚本创建一个缩小的文件


我可能会选择后者&将交互与标记中的类或id联系起来。1个文件,减少了缩小工作量&我可以在其他软件包中使用,而无需确保我拥有所需的每种页面类型…

我实际上是在首次使用pagetype类时将其添加到dom中。因为序列是从内容创作工具构建的,所以无法判断我需要的是所有的页面类型还是两个页面类型。然后,每种页面类型都会被添加到页面上。目前一些通用pagetype方法存在于超类中,创建一个交互模型可能是值得的。干杯就像一个很棒的项目。:)