【问题标题】:Use jsTree as folder browser使用 jsTree 作为文件夹浏览器
【发布时间】:2014-07-14 11:05:53
【问题描述】:

我想使用 jsTree 作为文件夹浏览器。 我有一个文件夹(根),在这个文件夹中有很多文件夹。 我想要什么?我想告诉 jsTree 这个文件夹的路径,并在后面的代码(c# 或 Javascript)中加载 jsTree 中的所有文件夹。 我可以用 JSON(http://www.jstree.com/docs/json/) 做到这一点,但我认为这不是一个好主意,因为有 200 个文件夹。 有什么办法吗?

谢谢。

【问题讨论】:

  • 为什么 JSON 不是一个好主意? JSON 可以很容易地处理 200 个对象。如果您出于某种原因担心 JSON 的大小,那么您可以在父文件夹的必要“打开”(?) 事件中对子文件夹发出 AJAX 请求。但这也有它的含义。在这种情况下,我建议您坚持使用文档。
  • 假设结构中添加了一个新文件夹,那么我必须更改代码,否则,如果我告诉 jsTree 路径,如果添加任何文件夹,它将自动更改。
  • 对,我没有意识到您的意思是希望 JavaScript 响应服务器端事件(创建新文件夹)。您必须定期检查文件夹结构(显然是服务器端),然后使用 SignalR 等技术将任何更改传达给前端(最终,无论如何都会返回(或“推送”)JSON 到驱动你的 JSTree)。无论哪种方式,它都是 JSON,但由于您的任务很复杂,除非您将其进一步分解为更具体的问题,否则您将无法在此处获得答案。

标签: c# javascript datasource jstree


【解决方案1】:

让我们看一下压缩后的 jQuery 脚本。它的大小为 84KB。

如果您假设一个文件夹条目有 200 个字节(这不是那么短),您可以将 430 个文件夹作为一个 JSON 传输以具有相同的负载。 JSON 被设计为轻量级和简短的,对我来说这是正确的选择。如果您考虑 XML,您可能会拥有 1.5 到 2.2 倍的配额全文/有效负载。

我不会担心 84KB,你不会感觉到它们。所以我不会担心 200 个文件夹。首先尝试实现该机制,并在必要时进行优化。

稍后,可能的优化可能包括:

  • 纯视觉帮助:添加一个微调器,向用户解释正在发生的事情,可能会显着提高用户的接受度。
  • 压缩 JSON
  • 分段加载:先发送前半部分,而用户导航加载后半部分。

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多