【发布时间】:2014-07-09 18:26:49
【问题描述】:
我有一个带有自定义树视图的页面。当一个节点展开时,它的子节点通过 jQuery Ajax 调用加载。
现在,我想保存树视图的当前状态,以便当用户离开并返回页面时,之前展开的树视图保持展开状态。
在类似情况下,我使用这个 jQuery 插件将搜索查询、结果或表单数据等数据保存在 cookie 中:https://github.com/carhartl/jquery-cookie
到目前为止,我可以看到两个选项:
- 保存展开的节点 ID 并从头开始重新加载树视图,但是:
- 可能有很多 Ajax 调用,
- 很难以正确的顺序进行调用(即不要在父级存在之前加载子级),
- 等待呼叫完成的时间
- 将包含树视图的整个元素保存到 cookie 中,但是:
- 可能有很多数据
- 在加载时将树视图 HTML 插入 DOM 时,可能难以将正确的 jQuery 事件附加到节点元素。
提前感谢您的任何想法!
克里斯
【问题讨论】:
-
这可能也应该在服务器端处理 - 即读取 cookie 服务器端的状态以查看菜单是否打开,然后加载数据并在第一次加载时显示它服务器端如果它是,这样你只需要记住打开状态。然后,您可以将您的 ajax 调用用于任何关闭的节点
标签: jquery cookies page-state