jjzjj

Javascript有向无环图库? (不需要图形可视化)

coder 2024-07-15 原文

我有一个最好用图表表示的数据集。它由 6 或 7 种不同“类型”的节点组成,这些节点具有有向边(相互依赖,保证没有循环依赖)。数据集本质上是分层配置的模板,用户需要能够从所需的不同层中选择配置的点点滴滴,并自动引入依赖位。

一般的 UI 需要是用户从多选框中选择或取消选择项目(每个节点类型一个这样的框),并让其他框中的“依赖”项目被选中或取消选择需要。我需要能够从服务器上拉下数据集,让用户选择所需的位(依赖处理在客户端的 javascript 中完成以实现响应),然后在完成后提交结果。

数据集非常庞大和复杂,以图表形式实际显示它会让用户感到不知所措和困惑。只需要基本的图遍历操作,因为所需要的只是将选择级联出依赖关系。 (例如,如果没有其他选定的节点仍然依赖于它们,则用户取消选择节点将导致节点依赖项变为未选中状态。用户选择节点将导致该节点的所有依赖项都被选中。)A从起始节点沿着有向边进行简单的深度或广度优先搜索就足以访问所有受影响的节点。如果我可以沿任一方向跟随边缘,奖金。 (如果没有,我可以轻松生成边反转图并在需要时使用它。)

我在这里四处寻找并找到了对许多 javascript 图形可视化库的引用,但大多数这些讨论似乎将“图形”解释为“图表”,我在这里不需要绘制图表。我的挖掘让我找到了这个列表:Raphael、protovis、flare、D3、jsVis、Dracula 和 prefuse。从这个列表来看,如果我忽略可视化方面,jsVis 或 Dracula 可能具有我需要的底层图形结构,但如果是这种情况,我从文档中不清楚。我必须排除其他一些,因为我不能引入任何闪存依赖项。不幸的是,我没有时间用这么多库来制作原型(prototype)。 (不过,我将深入研究 jsVis 和 dracula,除非在这里提供一些方便的输入。)

如果有人对该列表中的某些东西有经验,并且相信它的图形部分可以独立于可视化部分使用,那肯定会满足我的需求。如果有其他一些库可以满足我的需要,那也很好。关于许可的最后一个要求:库需要以非 copyleft 的方式“免费”——因此理想情况下是 Apache v2.0、BSD、MIT 或类似的东西。

最佳答案

我没用过,但你可能想看看data.js .它是一个 MIT 许可的库,具有一系列数据结构实用程序。特别是,它包括 Data.NodeData.Graph :

A Data.Graph can be used for representing arbitrary complex object graphs. Relations between objects are expressed through links that point to referred objects. Data.Graphs can be traversed in various ways.

关于Javascript有向无环图库? (不需要图形可视化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877091/

有关Javascript有向无环图库? (不需要图形可视化)的更多相关文章

  1. ruby - Ruby 中的波形可视化 - 2

    我即将开始一个将录制和编辑音频文件的项目,我正在寻找一个好的库(最好是Ruby,但会考虑Java或.NET以外的任何库)以进行实时可视化波形。有人知道我应该从哪里开始搜索吗? 最佳答案 要流入浏览器的数据量很大。Flash或Flex图表可能是唯一能提高内存效率的解决方案。Javascript图表往往会因大型数据集而崩溃。 关于ruby-Ruby中的波形可视化,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  2. ruby - 为什么在 ruby​​ 中创建 Rational 不需要新方法 - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rubysyntaxquestion:Rational(a,b)andRational.new!(a,b)我正在阅读ruby镐书,我对创建有理数的语法感到困惑。Rational(3,4)*Rational(1,2)产生=>3/8为什么Rational不需要new方法(我还注意到例如我可以在没有new方法的情况下创建字符串)?

  3. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  4. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

  5. ruby-on-rails - 从 ruby​​ 中的对象中删除不需要的属性 - 2

    我有一个对象,它具有来自调用的数据库的所有属性让我们说:u=User.find_by_email("email@email.com")你有first_name,last_name,email,phone等如何从对象本身获取除first_name和last_name之外的所有属性,而不是通过修改对模型的调用? 最佳答案 u.attributes.except("first_name","last_name") 关于ruby-on-rails-从ruby​​中的对象中删除不需要的属性,我们在

  6. javascript - jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到) - 2

    我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文

  7. ruby-on-rails - rails 不需要 Content-Type "application/json" - 2

    我在rails中有一个API端点,默认情况下,如果您没有设置任何Content-Typeheader,则会处理中的参数application/x-www-form-urlencoded有没有办法在不指定header中的内容类型的情况下处理来自POST请求的rails中的json字符串? 最佳答案 在您的routes.rb文件中,您可以将POST路由放置在命名空间中,并像这样定义预期的格式:namespace:api,defaults:{format::json}dopost'example'=>'controller#action'

  8. ruby-on-rails - 我将 Rails3 与 tinymce 一起使用。如何呈现用户关闭浏览器javascript然后输入xss? - 2

    我有一个用Rails3编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html表单使用tinymce将“content”列设置为textarea字段。在首页,因为使用了tinymce,post.html.erb的代码需要用这样的原始方法来实现。.好的,现在如果我关闭浏览器javascript,这个文本区域可以在没有tinymce的情况下输入,也许用户会输入任何xss,比如alert('xss');.我的前台会显示那个警告框。我尝试sanitize(@post.content)在posts_controller中,但sanitize方法将相互过滤tinymce样式。例如

  9. ruby - 使用 Selenium WebDriver 启用/禁用 javascript - 2

    出于某种原因,我必须为Firefox禁用javascript(手动,我们按照提到的步骤执行http://support.mozilla.org/en-US/kb/javascript-settings-for-interactive-web-pages#w_enabling-and-disabling-javascript)。使用Ruby的SeleniumWebDriver如何实现这一点? 最佳答案 是的,这是可能的。而是另一种方式。您首先需要查看链接Selenium::WebDriver::Firefox::Profile#[]=

  10. ruby - Watir-Webdriver 是否支持点击目标为 javascript 的链接? - 2

    我是Ruby和Watir-Webdriver的新手。我有一套用VBScript编写的站点自动化程序,我想将其转换为Ruby/Watir,因为我现在必须支持Firefox。我发现我真的很喜欢Ruby,而且我正在研究Watir,但我已经花了一周时间试图让Webdriver显示我的登录屏幕。该站点以带有“我同意”区域的“警告屏幕”开头。用户点击我同意并显示登录屏幕。我需要单击该区域以显示登录屏幕(这是同一页面,实际上是一个表单,只是隐藏了)。我整天都在用VBScript这样做:objExplorer.Document.GetElementsByTagName("area")(0).click

随机推荐