技术为服务器端DOM操作(Java与节点)

我正在做一个POC,在将HTML内容提供给客户端/浏览器之前,我必须处理DOM。

一些用例:

  1. 在html页面中注入一个javascript,这个javascript是客户特定的。
  2. 根据用户以前select的主题注入样式表。
  3. …更多这样的情况下有一些业务逻辑。

我已经完成了所有的使用案例。 我已经使用Jsoup在Java中实现了它。 我也在Node Js中完成了。 我必须决定select哪种技术?

有没有人知道这两种技术的优点/缺点? 请build议我应该如何testing哪两个更好。 任何可用于testing内存使用的工具/资源使用情况/所花费的时间等。虽然我已经计算了两种情况下的时间。

PS:请随意推荐任何其他技术的服务器端DOM操作和工具来testing其性能和内存。

在Java / Node.js之间进行select取决于您正在构build的应用程序,人们总是会拿出基准来展示其中一个的性能要好于另一个。 这些build议中的大部分都不适合您的使用案例,因此请考虑您的应用程序,总体拥有成本,开发时间等,作为参数,除了原始性能和接听电话。

请记住,node.js是一个单线程asynchronousI / O模型与java的multithreading同步I / O模型,该节点可以快速离开盒子,而Java具有很多function,可以在以后使用。 同样,这些也是主观的。

我build议DOM操作是你应该避免serverside,并尝试卸载到客户端JavaScript或使用更好的模板引擎。 如果这是不可避免的,Node.js有很好的select – 尝试使用比重量级jsdom快的模块cheerio 。

再次,使用这些库有其折衷。 Cheerio没有高级的DOM操作 – 它试图在服务器上实现类似jQuery的API,而jsdom是一个完整的DOM引擎。

这取决于你的需求和设置。 问题是什么目的:

  • 小应用程序 – 使用NodeJS,它可能会消耗比Java更less的内存
  • 更大(模块化的应用程序) – Java

你必须自己testing一下。 关于性能,资源使用情况和发展速度。

我们不能为你select。