3

问题

我们构建了一个类似仪表板的应用程序,用户可以在其中动态添加视图(将其想象为选项卡)。随着用户加载更多视图,页面不断崩溃。这可能是因为页面上有大量的 DOM 和大量的侦听器。

解决方案

我们正在寻找一种可以智能地卸载选项卡(DOM 及其侦听器)并在用户返回选项卡时重新加载它的方法。该选项卡应该被卸载并以某种形式(一些 HTML5 客户端存储)持久化,以便我们可以将其恢复到相同的状态。我们有没有图书馆可以做到这一点?

序列化数据及其状态:我们正在考虑的一种方法是在本地存储中序列化数据及其状态,并尝试根据数据重建视图。这种方法应该可行,如果我们使用像 Angular 这样的框架,它可能相对容易。优点:独立的视图和数据渲染逻辑。缺点:解决方案不是通用的。

我们正在寻找在 DOM 级别上工作的东西。

4

2 回答 2

0

您可以尝试只缓存模型而不是整个 DOM。JS 生成 DOM 并没有你想象的那么慢。

于 2013-05-27T22:17:40.290 回答
0

Instead of saving the entire tab and all the listeners you should make a JSON with the important values of the tab that you pretend to unload, then you can just remove the tab.

If the user wants to open it again, you can load an empty tab, then use the values you saved to restore the previous tab state. This way you don't need any extra libraries.

于 2014-05-08T12:39:34.767 回答