适用于 Ajax 开发的 Aptana IDE
Aptana 是一款基于 Eclipse 的 HTML、CSS 和 JavaScript 代码 IDE。我使用 Fedora Core 6 在一台配备 2GB 内存的现代双核机器上评测了 Aptana。在 Fedora Core 6 上安装 Aptana 可能有点困难,对于其他现代 Linux 发行版来说也可能是这样。
最初,我尝试使用“zip (无安装程序)”下载进行安装,它在不包含 Java 运行时的情况下约为 43MB。我解压了 zip 文件,并使用 Sun JDK 1.5.0 和 1.6.0 运行了 Aptana 脚本,但在两种情况下,IDE 都拒绝启动。
因此,我改用了“BIN Plus Java Runtime 1.4.2”下载,它为 74MB,并且 Aptana_IDE_Setup.bin 文件拒绝执行,并显示 libc.so.6 错误。在搜索论坛后,我发现您可以使用少量 sed 来解决此问题(请参阅“资源”)。图形安装程序完成后,Aptana 仍然拒绝启动,并显示“XPCOM error -2147467262”错误。
XPCOM 问题的解决方法是安装 Mozilla 并将 MOZILLA_FIVE_HOME 导出到 Mozilla 的基本路径。不幸的是,Mozilla 不再位于 Fedora Linux 中。我发现,对于 BIN plus 运行时安装,在短时间后,JVM 会因“打开文件过多”而发生 SEGV。
一个更好的方法是从您的发行版存储库安装 Eclipse,然后安装 Aptana 插件。
该 IDE 提供语法高亮、代码完成、通过文档结构进行文件导航(按名称转到 DOM 或 JavaScript 函数的各个部分)、在 Firefox 中运行的代码的断点调试以及一些同步选项。
语法高亮是上下文相关的,并且在混合的 HTML、CSS、PHP 和 JavaScript 内容中工作得非常好。代码完成在我试用的一点 PHP 中不起作用,但对于 JavaScript 来说效果很好——唯一的例外是当我为 XMLHttpRequest 的新实例创建变量时,方法名称代码完成最初不适用于该变量。但这似乎自行解决了。浏览器 DOM 上的代码完成还显示了支持该功能的浏览器及其版本。根据 2006 年 8 月对 Aptana 创始人 Paul Colton 的网络采访,设置一组浏览器和版本的需求,并让 IDE 将超出这些需求的方法标记为错误是一项计划中的功能。

图 1. Aptana 为 XMLHttpRequest 的 send() 方法执行代码辅助。显示了对象的方法,对于当前候选方法,参数和最低浏览器要求作为额外辅助显示。最右侧的轮廓视图允许在 HTML、CSS 和 JavaScript 混合内容之间快速导航。中间右侧是在中间左侧编辑的当前 HTML 页面的预览。
Aptana 允许您创建一个新的 JavaScript 项目,并从大量的第三方库中进行选择,包括 Aflax、Dojo、MochiKit、Mootools、Prototype、Rico、Scriptaculous、Yahoo UI、jQuery 和 yui-ext。
对于 HTML 文件,您可以将浏览器放在另一个选项卡中,或者水平/垂直地放在您正在编辑的文件旁边。当您保存 HTML 时,此浏览器会自动重新加载。这使得一些 JavaScript 的 hack-and-see 会话相当快速。
从 IDE 中选择调试会导致 Firefox 运行并安装扩展程序,以便 Aptana 可以与 Firefox 通信。通过这种组合,您可以在 Aptana 中设置断点,从 IDE 运行调试(这将页面加载到 Firefox 中),并且当在 Firefox 中命中断点时,Aptana 会在断点处跳到前台。IDE 与 Firefox 的集成效果良好;但是,当 Aptana 变得缓慢时,我不得不重启 Eclipse 才能恢复。这可能是我的配置而不是 Aptana 的结果,尽管我运行的是 Fedora Eclipse,其中只有 Aptana 插件和一个精简的 Firefox 设置。
就 Ajax 支持而言,可以使用 Ajax 监视器来显示已发出的请求和响应。不幸的是,如果您尝试从您正在编辑的 HTML 文件中使用 XMLHttpRequest 进行 Ajax,那么 HTML 文件的预览肯定会因权限被拒绝错误而崩溃。如果您在 Aptana 中使用调试模式来启动 Firefox 的外部实例,则 XMLHttpRequest 也可能无法正常工作。Aptana 启动的 Firefox 实例将加载一个 URL,例如 http://127.0.0.1:8001/foo.htm,该 URL 由 Aptana 包含的 Web 服务器提供服务。假设有一个针对简单路径的 XMLHttpRequest,例如 /cgi-bin/foo.pl,以确保您从原始服务器请求并避免浏览器出现权限被拒绝错误。然后,浏览器将向在端口 8001 上运行的 Aptana 中的 Web 服务器请求此资源,但会失败。如果您可以配置 Aptana Web 服务器将某些请求代理到服务器并将结果返回给您用于调试的 Firefox 实例,那就太好了。例如,如果您将 Aptana 启动用于调试的 Firefox 实例中的 URL 更改为 Apache 提供的站点版本,例如 https:///foo/myapp.html,您的 Ajax 请求可能会正常运行,但 Aptana 断点将不再起作用。
如果能够在 Ajax 监视器中设置断点就太好了,这样 JavaScript onreadystatechange 回调就会被暂停——例如,如果 XPath2 与请求的响应匹配。您可以通过在 JavaScript 函数中设置适当详细的表达式断点来解决此问题,但如果它更直接地集成到 Ajax 监视器本身中会更好。
该 IDE 包括对与 FTP 或 SFTP 服务器同步文件的支持,但目前缺少 rsync 支持。
Aptana 屏幕广播页面是快速了解 Aptana 功能以及如何使用它们的好资源;但是,对于那些通常熟悉 IDE 的人来说,某些演示文稿可能不太有用。
本评测重点介绍了一些缺点(尤其是与 XMLHttpRequest 和调试稳定性相关的问题)以及一些小错误。但是,总的来说,Aptana 是一款非常不错的 IDE,可用于 hack 一些 HTML、CSS、JavaScript,甚至可能是 PHP 代码。
总结
有争议的
Eclipse 的使用可能是一个两极分化的因素。
优点
语法高亮和完成功能在 HTML、CSS 和 JavaScript 混合内容中工作良好。
在从 Aptana 启动的 Firefox 浏览器中设置断点并单步执行 JavaScript 代码。
缺点
将 Aptana 断点调试与 Ajax XMLHttpRequest 调用结合使用并不简单。
有时事情会变得有点慢,即使在强大的硬件上也是如此。
调试模式有时需要您重启 Aptana 才能恢复。
资源
Aptana: www.aptana.com
Aptana 屏幕广播: www.aptana.tv
Fedora Eclipse: sources.redhat.com/eclipse
Linux 安装问题: www.aptana.com/forums/viewtopic.php?t=134
在 Linux 上安装 Aptana: www.aptana.com/docs/index.php/Installing_Aptana_on_Linux
Mozilla 问题和 Aptana: www.aptana.com/forums/viewtopic.php?t=169&view=next
教程: www.aptana.com/docs/index.php/Aptana_Tutorials
使用 Ajax 监视器视图(尽管没有关于如何解决 Aptana Web 服务器会话的权限问题的信息): www.aptana.com/docs/index.php/Using_the_AJAX_Monitor_View
对 Aptana 创始人 Paul Colton 的采访: playbacktime.com/2006/08/30/interview-paul-colton-founder-of-aptana-ajax-web20
Ben Martin 从事文件系统工作已超过十年。他目前正在攻读博士学位,研究将语义文件系统与形式概念分析相结合,以改善人与文件系统之间的交互。