【问题标题】:Pros and cons with JaxerJaxer 的优缺点
【发布时间】:2008-09-19 02:14:34
【问题描述】:

我知道这个问题一直是asked before,但是已经一个月没有像样的答复了...我正在查看Aptana's 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

【问题讨论】:

    标签: javascript ajax aptana jaxer


    【解决方案1】:

    我很久没有使用 Jaxer,但我发现了一些东西:

    优点

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

    缺点

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

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

    【讨论】:

    • 我现在已经安装了 Jaxer,我首先测试的是 E4X 功能。似乎工作得很好,是一个非常强大的工具。您必须记住,E4X 代码应该保留在服务器端,因为 Mozilla 是唯一知道如何处理它的浏览器。
    • 是的,我知道它是 Moz 专用的。正如我所说,我在过渡到 1.0 时使用它,在 beta 测试期间,我在 E4X 上遇到了困难。如果有效,那就太好了,如果无效,那就完全不透明了。
    【解决方案2】:

    我确实遇到过这组performance benchmarks

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-01
        • 2013-04-07
        • 2010-09-29
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 2012-01-18
        • 2011-04-05
        相关资源
        最近更新 更多