8

我意识到这个问题之前已经被问过,但是已经有一个月没有像样的回答了……我正在研究Aptana 的 Jaxer,我发现这个概念非常令人兴奋。

对于不熟悉它的人,这里有一个快速概述:

用他们的话说,Jaxer 是“世界上第一个真正的 AJAX 服务器”。它基于 Mozilla 引擎,因此脚本是用 javascript 编写的,您可以完全访问服务器端的 DOM。

脚本放置在带有<script>标签的页面上,您可以指定一个runat属性(ala ASP.NET)来标记脚本以在客户端、服务器或两者上执行,或者作为“服务器代理”,使功能在客户端上可用,但它们通过 AJAX 在服务器上执行。这也意味着您可以在服务器和客户端上使用您最喜欢的客户端库(jQuery、Prototype)。

它还可以用于处理以另一种语言(例如 php、ruby)生成的文档,我认为除了帮助将现有应用程序转换为使用 Jaxer 之外,这并不实用。

  • 优缺点都有什么?
  • API 的成熟度/稳定性如何?
  • 与其他服务器端 html 预处理器相比,性能有多好?
  • 是否有人将 Jaxer 与其他技术(php、pearl、ruby 等)一起使用,您的经验是什么?

编辑:我发布了另一个关于我在玩 Jaxer 时发现的一个缺点的问题:Defining objects when using Jaxer

4

3 回答 3

12

我没有使用 Jaxer 很长时间,但这里有一些我发现的东西:

优点

  • 用相同的代码编写前端和后端。特别适合编写验证逻辑。
  • 回到服务器的“无缝”AJAX 通信——就像调用 JS 函数一样。
  • 使用 jQuery 等 JavaScript 框架来操作 DOM 的能力。
  • 使用 Canvas API 生成或操作图像的能力。
  • 您可以使用 Array extras 和 getter/setter 等 JavaScript 1.8 的新功能来编写服务器 JavaScript。

缺点

  • 我发现他们的 API 不稳定(当我尝试它时他们正在转换到 1.0,所以这有点道理)并且文档令人困惑、缺失或与更改的功能不匹配。我还发现调试我的 Jaxer 服务器端代码非常困难,而且当我遇到麻烦时,错误消息也不是很有帮助。
  • 您不会在演示文稿和逻辑之间获得真正的 MVC 甚至 MVP(ASP.NET 样式)分离。
  • 我个人无法让 E4X(JavaScript 中的 xml)工作,这应该是一个很大的吸引力。
  • 围绕它构建整个应用程序的框架并不多。你从一些非常基本的构建块开始。
  • 在您看来,它并没有真正提供任何帮助,因此请忘记您可能在其他地方使用的所有模板或可重用组件。并不是说你不能复制它,但它比开箱即用更难。

总的来说,我认为 Jaxer 作为另一个 web 框架前的后处理器最有希望。使用 Jaxer 将所有漂亮的 AJAX 内容叠加在现有站点之上会很棒。这将使创建一个在服务器和客户端之间共享验证/页面操作逻辑的动态站点变得更加容易。我认为我不想只使用 Jaxer 来编写应用程序。此外,它还很年轻(而且不成熟)——我很想看看它会在哪里结束。

于 2008-09-19T06:28:58.797 回答
1

我确实遇到过这组性能基准

看起来 Jaxer 的性能似乎比 Rails 好,但不如 php...

于 2008-09-19T17:12:14.513 回答
0

@BRH:伟大的洞察力。我会回应所有“优点”和“缺点”2、4 和 5 以及您的最终概述。我有种感觉,他们并不打算取代上游框架的任何市场......但如果他们能够做到并保持它尽可能紧凑和易于理解,我希望他们这样做!我喜欢他们的想法!

PS我不知道它是否是新的,但是有一个<jaxer:include标签可以在服务器端脚本执行之前将片段注入页面,这在某些代码重用场景中可能会有所帮助。沿着这些思路,我可能会发现更多。

于 2008-09-19T20:56:18.237 回答