4

我正在开发一个包含多个子模块的相当大的应用程序。每个子模块都可以具有许多面板和 UI 组件的复杂功能。我之前作为单页应用程序做过较小规模的项目,但这次担心如果用户继续跨多个模块工作,我的 DOM 将很长时间不会刷新。

当我分析 Facebook 的运作方式时,我发现它大部分时间都是作为单页应用程序运行的。但有时它会通过用户的操作刷新整个 DOM(显然它是随机的或基于用户活动计数)。

他们是否有任何关于如何创建像单页这样的大型应用程序而不影响 DOM 性能的模式或最佳实践?

(我不是在寻找编码技术来保持低内存占用......而是寻找整个应用程序的设计方法)

4

3 回答 3

7

刷新页面并不丢人。应用程序不必严格的单页的。

如果您的页面上有控件,则它们的操作应保留在该页面中。但是,如果用户进入应用程序的完全不同部分,他没有理由不能简单地导航到该特定页面。

于 2012-10-26T08:34:47.657 回答
1

innerHTML = ''在更改发生之前销毁必须更改的 DOM 节点或面板设置应该没问题。我想 UI 元素具有destroy或类似的功能。

还可以考虑取消设置面板功能中涉及的所有 javascript 变量,这些变量应该被清除。

于 2012-10-26T07:26:45.380 回答
0

拥有一个控制模块生命周期的应用程序核心总是好的。然后,您的每个模块都将具有定义明确的接口,例如 launch()、destroy() 等或任何有意义的接口。因此,当调用 destroy() 函数时,它将清空 html 以及存储应用程序数据的 Javascript 对象。Nicholas Zakas 对大型 Javascript 应用程序进行了出色的演示。希望能帮助到你。

Nicholas Zakas 的可扩展 Javascript 应用程序架构

于 2012-10-29T02:59:17.097 回答