服务器端DOM操作技术(Java vs Node)

时间:2013-12-04 01:49:50

标签: node.js dom jsoup server-side

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

一些用例:

  1. 在html页面中注入一个javascript,这个javascript是客户 特定的。
  2. 根据用户之前选择的主题注入样式表。
  3. ...更多此类案例存在一些业务逻辑。
  4. 我已经完成了所有用例。 我使用Jsoup在Java中实现了它。我也是在Node Js完成的。我必须决定选择哪种技术?

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

    PS:请随意为服务器端DOM操作建议任何其他技术,以及测试其性能和内存的工具。

2 个答案:

答案 0 :(得分:7)

在Java / Node.js之间进行选择取决于您正在构建的应用程序,人们将始终提出基准来显示一个的性能优于另一个。大多数这些建议都不适合您的使用案例,因此请考虑您的应用程序,TCO,开发时间等作为原始性能以外的参数并接听电话。

请记住,node.js是单线程异步i / o模型与java的多线程同步i / o模型,并且该节点可以快速开箱即用,而java带有许多可以进入的功能方便以后。同样,这些也是主观的。

我建议DOM操作是你应该避免服务器端并尝试将其卸载到客户端javascript或使用更好的模板引擎。如果它是不可避免的,Node.js有很好的选择 - 尝试使用比重量cheerio更快的模块jsdom

同样,使用这些库有其权衡。 Cheerio没有高级DOM操作 - 它试图在服务器上实现类似API的jquery,而jsdom是一个完整的DOM引擎。

答案 1 :(得分:-3)

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

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

你必须自己测试它们。关注性能,资源使用情况和开发速度。

我们无法为您选择。