Jaxer的优缺点

时间:2020-03-06 14:24:24  来源:igfitidea点击:

我意识到这个问题以前曾被问过,但是已经过去了一个月,没有一个令人满意的答复……我看着Aptana的Jaxer,我发现这个概念非常令人兴奋。

这是对不熟悉它的人的快速概述:

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

脚本使用<script>标签放置在页面上,并且可以指定runat属性(ala ASP.NET)来标记脚本以在客户端,服务器或者两者上执行,或者作为"服务器代理"来执行。使功能在客户端上可用,但是它们通过AJAX在服务器上执行。这也意味着我们可以在服务器以及客户端上使用自己喜欢的客户端库(jQuery,Prototype)。

它也可以用于处理以另一种语言(例如php,ruby)生成的文档,我认为这是不切实际的,只是有助于将现有应用程序转换为使用Jaxer。

  • 优缺点都有什么?
  • API的成熟度/稳定性如何?
  • 与其他服务器端html预处理器相比,性能如何?
  • 有没有人将Jaxer与其他技术(php,珍珠,红宝石等)一起使用,经验是什么?

编辑:我发布了另一个有关我在玩Jaxer时发现的缺点的问题:使用Jaxer时定义对象

解决方案

我已经很长时间没有使用Jaxer了,但是我发现了一些东西:

优点

  • 用相同的代码编写前端和后端。特别适合编写验证逻辑。
  • "无缝" AJAX通信返回到服务器-就像调用JS函数一样。
  • 使用jQuery之类的JavaScript框架来操作DOM的能力。
  • 使用Canvas API生成或者处理图像的能力。
  • 我们可以使用复杂的JavaScript 1.8新功能(例如Array Extras和Getters / setters)编写服务器JavaScript。

缺点

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

总体而言,我认为Jaxer作为另一个Web Framewok的后处理器最有前途。使用Jaxer将所有精美的AJAX内容分层放置在现有站点的顶部将是很棒的。在服务器和客户端之间共享具有验证/页面操作逻辑的动态站点会变得容易得多。我不希望只使用Jaxer编写应用程序。另外,它还很年轻(而且还很不成熟),我很想知道它的结局。

我确实遇到了这套性能基准。

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

@BRH:很有见识。我会回应所有的"优点"和"缺点" 2、4、5,以及最终概述。我有一种感觉,他们不打算取代上游框架的任何市场……但是,如果他们能够做到并保持现状的紧密和可理解,我希望他们这样做!我喜欢他们的想法!

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

我相信Jaxer很有前途,来自这里的AJAX开发人员;)...尽管那意味着我不得不放弃或者减少使用PHP(我的第一语言)。 :)