如何减少 SPA 中 DOM 元素的数量

发布于 2024-12-23 14:29:20 字数 271 浏览 0 评论 0原文

我有一个非常复杂的 SPA,有许多选项卡、视图、网格等。每个元素都是由backbone.js 从模板生成的。

一旦生成了一个元素,我想保留该元素的状态,所以我不能销毁它。

显然,采用这种方法的 DOM 元素数量相当多。

一旦视图被隐藏,就将其从 DOM 树中分离出来,并在显示后重新将其重新附加回来,是否值得这样做?

如果我使用 $(this.el).find(),backbone.js 视图 DOM 操作仍然可以在分离的元素上工作吗?

I have a pretty complex SPA, with many tabs, views, grids, etc. Each of the elements are generated by backbone.js from a template.

Once an element is generated I want to keep a state of the element, so I cannot destroy it.

Obviously number of DOM elements with this approach is pretty high.

Is it worth the effort to de-attach a view from DOM tree once it gets hidden and re-attach it back once it gets shown?

Will backbone.js view DOM manipulation still work on de-attached element if I use $(this.el).find()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疧_╮線 2024-12-30 14:29:20

一种方法是让视图向 DOM 添加/删除元素。因此,只有可见的视图才会有附加到 DOM 的元素。因此,您可以编写一个视图管理器,调用视图的 render 方法,传递将在其中渲染视图的 DOM 元素。管理器还可以调用 stop 方法,从 DOM 中删除视图元素。

One approach would is to let the views add/remove there element from/to the DOM. So that only views that are visible have there element attached to DOM. So you can write a view manager that call the render method of the view, passing a DOM element where the view will be rendered in. The manager can also call a stop method where he removes the views element from the DOM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文