复杂的应用程序可以“单页”多少?

时间:2012-10-26 07:18:31

标签: javascript dom architecture browser single-page-application

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

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

他们的任何模式或最佳实践都是关于如何在不影响DOM性能的情况下创建如单页的大型应用程序的?

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

3 个答案:

答案 0 :(得分:7)

刷新页面并不可耻。应用程序不 严格单页。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

Scalable Javascript application architecture by Nicholas Zakas