如何减少 SPA 中 DOM 元素的数量
我有一个非常复杂的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种方法是让视图向 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.