【问题标题】:Single page web application design单页网页应用程序设计
【发布时间】:2012-03-05 22:20:07
【问题描述】:
我正在创建一个单页 Web 应用程序。
我为应用程序结构创建了一个基本设计。 This 回答 this 视频很有帮助。
应用程序包含一个 html 页面。 JS 代码会改变它的内容。
Usher 将根据 URL 提供一个模块(domain.com/#list#item1 将返回一个项目模块)。
该模块将使用沙箱从服务器检索数据(为此将使用应用程序核心)。
该模块将通过向沙箱传递一个键值列表来设置页面样式,并且也会以这种方式设置页面 HTML。
你怎么看。是否足够解耦?
【问题讨论】:
标签:
javascript
web-applications
【解决方案1】:
简短的回答:有点。这取决于您的模块有多复杂。
长答案:
我正在开发一个尊重核心 -> 沙盒实例 -> 模块模式的应用程序,就像你描述的那样。
关于我的应用程序的唯一未回答的问题是:
“当模块 A 和模块 B 有一个相同或几乎相同的小型 UI 组件时会发生什么?”。
在您的情况下,这可能是 5 个模块中的 3 个模块上的手风琴。这个手风琴可能是特定于应用程序的,因此只需在核心中添加一个 jquery 插件,并通过沙箱将其暴露给模块就不会削减它。
我最终得到了两种可能的解决方案:
1) 使用通用功能作为一种特殊类型的模块,其他模块可以通过沙箱请求。这是在给定时间只有一个 UI 实例可见的情况 - 这可能是您的情况 -
2) 对我重用的对象使用简单的原型实例化,并将其添加为所有使用它的模块的依赖项。