我意识到之前曾经问过这个问题,但是已经有一个月没有得到好评......我正在看Aptana的Jaxer,我发现这个概念非常令人兴奋.
以下是对不熟悉它的人的快速概述:
用他们的话说,Jaxer是"世界上第一个真正的AJAX服务器".它基于Mozilla引擎,因此脚本使用javascript编写,您可以完全访问服务器端的DOM.
脚本放在带有标签的页面上,您可以指定一个
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和getter/setter)编写服务器JavaScript.
缺点
我发现他们的API不稳定(当我尝试它时他们正在转换到1.0以便有点理解)并且文档令人困惑,缺失或与更改的功能不匹配.我还发现调试我的Jaxer服务器端代码非常困难,当我遇到麻烦时,错误消息不是很有用.
您的演示文稿和逻辑之间没有真正的MVC甚至MVP(ASP.NET风格)分离.
我个人无法让E4X(JavaScript中的xml)工作,这应该是一个很大的吸引力.
围绕它构建整个应用程序并没有很多框架.你是从一些非常基本的构建块开始的.
它并不真正在您的视图中提供任何帮助,因此请忘记您可能在其他地方使用的所有模板或可重用组件.并不是说你不能复制它,但它比开箱即用更困难.
总的来说,我认为Jaxer作为另一个web framewok前面的后处理器最有希望.使用Jaxer将所有漂亮的AJAX内容分层到现有站点之上会很棒.这将使得在服务器和客户端之间共享验证/页面操作逻辑的动态站点变得更加容易.我不认为我只想使用Jaxer编写应用程序.而且,它很年轻(而且还不成熟) - 我会有兴趣看看它最终到底在哪里.