问题: 我们构建了一个类似仪表盘的应用程序,用户可以动态添加视图(类似选项卡)。随着用户加载更多的视图,页面不断崩溃。这可能是由于页面上有大量DOM计数和监听器。 解决方案: 我们正在寻找一种方法,可以智能地卸载选项卡(包括DOM和其监听器),并在用户返回选项卡时重新加载它。选项卡应该被卸载并以某种形式(一些HTML5客户端存储)持久化,以便我们可以将其恢复到相同的状态。我们是否有任何库来实现这一点? 序列化数据及其状态:我们正在考虑的一种方法是将数据及其状态序列化到本地存储中,并尝试根据数据重构视图。这种方法应该可行,如果我们使用像Angular这样的框架,它可能相对容易。优点:分离视图和数据呈现逻辑。缺点:该解决方案不是通用的。 我们正在寻找一些在DOM级别工作的东西。
不要保存整个选项卡和所有的监听器,而是应该创建一个 JSON 对象,包含你想要卸载的选项卡的重要值,然后再删除该选项卡。 如果用户想要重新打开它,可以加载一个空白选项卡,然后使用之前保存的值来恢复先前的选项卡状态。这样就不需要任何额外的库了。