混合服务器端 java 和客户端 javascript 图表库?

2023-12-07

是否有一个库可以用 Java 和 Javascript 为相同的数据生成相同的图表?

我的任务是:

  • 显示一些华丽的动态图表在浏览器中,更好地使用动态工具提示、缩放等(我在这里考虑Javascript)
  • 并在服务器端用 Java 生成相同(或足够相似)的图表,以便自动发送它们在电子邮件中(在这种情况下根本没有浏览器)。

我想避免使用 Flash 来实现 iPhone 互操作性。

有一些静态服务器端图表,例如 Eastwood/JFreeChart,但我想让它在浏览器中更加活跃。

是的,我可以通过 Ajax 重新加载静态图像。还有其他选择吗?


为什么这个问题已经一年多了却没有答案?!我建议采用一种相当有问题且有些硬核的方法。


使用JavaScript,太棒了!

这是您的成功公式:d3.js+jsdom+Rhino+Batik

具体来说:

  1. 使用一些灵活的 JavaScript 库生成图表,例如d3.js.

  2. Use jsdom在服务器端运行 d3。 Jsdom 是纯 JS 库,众所周知 d3 正在其之上工作。

  3. 在里面运行 jsdom 和 d3Rhino- 自 1.6 起,JavaScript 引擎就内置于您心爱的 JVM 中(耶,JSR-223!)。不过,我建议您将其更新到最新版本(它位于 Maven Central 上,整洁!)。我猜Node.JS可以做得更好,但我假设你被 Java 困住了。

    另请注意,有一个更旧、更成熟且特定于 Rhino 的服务器端 DOM 实现 -EnvJs (需要 Rhino 1.7R2,而不是 R3)。如果 jsdom 不适合你,你可以尝试一下。

  4. Use Batik光栅化 d3 生成的 SVG。Batik 甚至支持通过 Rhino 在 SVG 内编写脚本。这意味着如果您愿意,您可以在服务器端生成交互式图表。我也在实践中使用过它,并获得了很好的经验。

整个方法已知有效服务器端使用 Node.JS 作为 JS 引擎,使用 ImageMagick 作为光栅化器但我认为没有理由它对你不起作用。


顺便说一句,如果你能让一切正常运行,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混合服务器端 java 和客户端 javascript 图表库? 的相关文章

  • Java J文件选择器

    我希望能够控制外观JFileChooser 我特别想保存如何JFileChooser上次显示时显示 我想保存它是否在详细信息 列表视图中使用以及列表被排序的列 例如 大小或修改日期 我知道有很多关于JFileChooser但我一直没能找到我
  • Angular 2.0 路由 - TS 2305 ...没有导出成员“ModulewithProviders”

    我正在关注一个角度2 0教程在 Angular JS 官方上site https angular io docs ts latest tutorial toh pt5 html并在路由练习结束时陷入困境 该代码上次有效 但前几天我点击 np
  • 使用嵌入式 Jetty 7 发布 JAX-WS 端点

    有人可以帮忙吗 我想使用嵌入式 Jetty 7 作为端点 这是我尝试过的 public class MiniTestJetty WebService targetNamespace http public static class Calc
  • 在仔细锁定但不受信任的代码上使用 Thread.stop()

    我知道Thread stop 已被弃用 并且有充分的理由 它通常不安全 但这并不意味着它是never安全 据我所知 在我想要使用它的上下文中它是安全的 而且 据我所知 我别无选择 上下文是一个两人策略游戏的第三方插件 以国际象棋为例 第三方
  • 在 Node.js 中封装 require 可以解决相对路径调用

    我正在尝试创建一个 require 包装器来加载依赖项 但我发现很难让它像原始的 require 函数一样工作 当路径是相对路径时 包装器无法解析为正确的路径 因为我的加载程序和调用程序文件不在同一文件夹中 这是一个简化的描述 index
  • 检查对象是否为空

    我有一个链表 其中第一个节点包含空对象 表示firstNode data等于null firstNode nextPointer null firstNode previousPointer null 我想检查firstNode 是否为空
  • 动态添加项目到放大弹出画廊

    有没有办法动态添加图库项目华丽的弹出窗口 http dimsemenov com plugins magnific popup 那已经开放了 或更新当前项目 找不到关于 in 的任何内容插件文档 http dimsemenov com pl
  • Spring Boot - 如何在开发过程中禁用@Cacheable?

    我正在寻找两件事 如何在开发过程中使用 Spring boot dev 配置文件禁用所有缓存 application properties 中似乎没有通用设置可以将其全部关闭 最简单的方法是什么 如何禁用特定方法的缓存 我尝试像这样使用 S
  • 什么会导致“IO错误java.net.SocketException:选择失败”?

    我的笔记本电脑上运行一个服务器程序 相同的路由器和相同的代码 它工作正常 客户端可以连接 然而 当我将工作区复制到我的电脑并运行它时 我得到了这样的废话 IO错误java net SocketException 选择失败 这是代码 publ
  • Javascript:如何过滤对象数组并对结果求和

    我有一个对象数组 var example a 1 b 2 c 3 a 4 b 5 c 6 a 7 b 8 c 9 我正在尝试添加所有不对应的值c 我已经设法用 console log test filter x gt x c gt 3 过滤
  • 为什么这段代码可以在 Java 7 中运行,而不能在 Java 8 中运行?

    我目前使用 IDE Eclipse 版本 Neon 2 Release 4 6 2 和版本 java Version 8 Update 131 在此代码中 IDE 给出错误 类型不匹配 无法从字节转换为整数 Integer i byte 1
  • Spring portlet mvc:@Valid 似乎不起作用

    我创建了一个 bean 类并在我的控制器中使用它 但它似乎不起作用 也就是说 即使我输入了无效的年龄 result hasErrors仍然是假的 豆类 public class User Min 13 private int age pri
  • javascript:新日期,缺少年份

    我打电话给 new Date Jan 4 发现默认年份是2001年 a new Date Jan 4 Thu Jan 04 2001 00 00 00 GMT 0500 EST 有什么办法可以将默认年份设置为 2011 年吗 更新 我知道我
  • 使用mapstruct映射不同类型列表的元素

    我们正在映射一个对象 该对象具有一个对象列表 这些对象都实现了父接口 但可能具有不同的实现 但当我们映射列表时 似乎只有来自 ParentClass 的值被映射 而不是来自子类的值 但直接映射子进程就可以了 public class Par
  • 当 javadoc 未附加到依赖项时,如何将 javadoc 引用到 Maven 的 eclipse 插件中的依赖项

    我在开发中使用 Eclipse Maven 和 Java 我使用 Maven 下载依赖项 jar 文件和 javadoc 如果可用 并使用 Maven 的 eclipse 插件为 Eclipse 生成 project 和 classpath
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • 仅当用户开始输入时清除 JavaFX TextField 中的提示文本

    默认行为是当字段获得焦点时 字段中的提示文本将被删除 那是标记在场上的时候 是否可以配置文本字段 以便仅在用户开始输入时删除提示文本 否则 我需要在每个文本字段旁边 上方添加一个标签 以描述其中的值 我知道它有点旧 但我自己也需要它 这仍然
  • 如何在没有消息时隐藏 Bootstrap 警报框

    我用 Bootstrap 做了一个简单的警报框 如下所示 div class alertBox span class alert alert info bag session username span div When there is

随机推荐

  • Visual Studio 的 NCB 文件位于哪里?

    我怀疑我的 Visual Studio Intellisense 已停止工作 我读到这可能是 NCB 文件损坏并需要删除的原因 我在整个计算机中搜索了 NCB 文件 但没有弹出搜索结果 我可以在哪里手动找到该文件 如果你有一个 它应该与您的
  • C# 将函数作为参数传递[重复]

    这个问题在这里已经有答案了 我用 C 编写了一个函数来进行数值微分 它看起来像这样 public double Diff double x double h 0 0000001 return Function x h Function x
  • 获取每个用户最近 3 个月的数据作为单独的列而不是行

    我有一个mysql表 bf monthly bill 其中来自另一个表 bf users 的每个用户的数据按月存储 我的 bf users 表的结构是 id display name 1 ABC 2 DEF 3 GHI 4 JKL bf m
  • 如何在单个创建视图上对订单和订单详细信息实施创建操作?

    有人想出了简单的解决方案吗 问题 给定两个具有一对多关系的模型类 我如何为它们设计一个单一的创建 如何将订单详细信息集合添加到尚未保留在数据库中的订单实体 我将使用什么视图模型 鉴于我有已完成的订单页面 主 那么我必须有一个收集订单详细信息
  • 我的 html5 游戏没有 windows azure 吗?

    在我的本地计算机上 我用 HTML5 html javascript 创建了一个游戏 它是一个 html 文件 位于我的桌面上 在 Chrome 中运行并在记事本中编辑 我想要做的是连接到 Azure 因为我想在游戏中存储玩家得分 正如我提
  • 有没有办法阻止 Scala 2.12 破坏 Jackson 对象映射器?

    我正在将 Scala 版本从 2 11 升级到 2 12 对象映射器似乎损坏了 我的代码的其他部分需要仅在 2 12 下可用的功能 This 使用 scala 2 12 和 Spark 2 1提到重建杰克逊是一个可能的解决方案 这真的有必要
  • 我可以通过浏览器和 JavaScript 以编程方式访问智能手机的传感器吗?

    我是否可以通过浏览器网页和 JavaScript 以编程方式访问智能手机的传感器 例如 Android 或 iPhone 设备上的加速度计 指南针等 我知道 W3C 设备标准可以允许访问相机 HTML5 很可能包含传感器 API 在完全标准
  • React Router Dom,仅显示某些页面的标题组件[重复]

    这个问题在这里已经有答案了 Header将出现在除ConfirmEmail 基本上 我不想要Header当出现ConfirmEmail组件被打开 我应该怎么办 路由器设置 import React from react import Bro
  • 没有。在 SQL Server 2005 中运行选择查询后受影响的行数

    以下是我的查询 select monNameStr as MName IsNull count c AssignmentID 0 IsNull sum s ACV 0 IsNull sum s GrossReturn 0 IsNull su
  • 在多个数据库上安装存储过程

    有什么方法可以轻松地在多个 MySQL 数据库上同时创建存储过程吗 所有数据库都安装在同一个 MySQL 上 在所有模式中安装 要获取模式列表 请使用show databases 将此与 use use schemaA use schema
  • 始终在 console.log 中显示 html 元素 (Chromium)

    我有一个 js 脚本console log有时会打印 html 元素 Chrome 有两种打印此类 DOM 元素的模式 在 html 样式中 例如 div class abc div 其中悬停会突出显示页面中的元素 然后单击会打开 DOM
  • iPhone 5 + iOS6 如何决定应用程序是否必须在信箱模式下运行

    iOS6 如何决定应用程序是否必须在 iPhone 5 上以信箱 兼容模式运行 这是构建设置参数 如 目标设备系列 吗 或者所有基于最新 SDK 构建的应用程序都必须支持 iPhone 5 屏幕尺寸 或者应用程序将以信箱模式运行 是否没有
  • 如何在 makefile 中使用 LDFLAGS

    我是 Linux 操作系统的新手 我正在尝试编译一个 c使用 makefile 文件 必须链接数学库 我的 makefile 如下所示 CC gcc CFLAGS Wall lm all client PHONY clean clean r
  • 如何连接两个不同形状的张量

    我有两个张量 get shape 400 和 1176 我想将它们连接成一个大小为 1576 的张量 我尝试了 concat 但它要求两者具有相同的维度 怎么办呢 希望您通过批量大小传递相同维度的输入 import tensorflow a
  • 指针前一变量

    据我所知 在 C 中检查指针是否是数组末尾的一个元素是完全合法的 如下所示 char arr 16 for char ptr arr ptr arr sizeof arr sizeof arr 0 ptr some code 我的问题是这样
  • MSbuild 任务失败,因为“任何 CPU”解决方案的构建顺序不正确

    我在 Teambuild 中构建两种解决方案 一种是应用程序本身 另一种是 WiX 安装程序 我想使用 任何 CPU 构建配置来构建应用程序 并使用 x86 来构建安装程序 我在项目文件中首先列出了 任何 CPU 解决方案 但 Teambu
  • pandas 按两列值过滤行,不区分大小写

    我有一个简单的数据框 如下所示 Last Known Date ConfigredValue ReferenceValue 0 24 Jun 17 False FALSE 1 25 Jun 17 FALSE FALSE 2 26 Jun 1
  • 正则表达式 WORD 的最后一个字符

    我正在尝试匹配单词中的最后一个字符 WORD 是非空白字符的序列 n r t f 或匹配 的空行 我为此所做的表达是 n t r f n t r f 正则表达式匹配空白字符或行尾后面的非空白字符 但我不知道如何阻止它从结果中排除以下空白字符
  • Swift 计算属性不能在 init 中使用?

    我正在尝试将 MultipeerConnectivity 框架与 Swift 一起使用 我有以下属性 var peerId MCPeerID let advertiser MCNearbyServiceAdvertiser let brow
  • 混合服务器端 java 和客户端 javascript 图表库?

    是否有一个库可以用 Java 和 Javascript 为相同的数据生成相同的图表 我的任务是 显示一些华丽的动态图表在浏览器中 更好地使用动态工具提示 缩放等 我在这里考虑Javascript 并在服务器端用 Java 生成相同 或足够相