XmlHttpRequest返回值

时间:2008-08-22 09:47:16

标签: javascript ajax

我正在寻找(可以说)从XmlHttpRequest返回数据的正确方法。我看到的选项是:

  • 纯HTML 。让请求格式化数据并以可用的格式返回 优势:通过调用页面轻松使用。
    缺点:非常严格,坚持使用固定布局。

  • XML 即可。让请求返回XML,在调用页面上使用XSLT对其进行格式化。
    Advantage :所请求的服务很容易被其他来源使用。
    缺点 :浏览器对XSLT的支持是否足够好?

  • JSON 即可。让请求返回JSON,使用javascript消费它,相应地呈现HTML。
    Advantage :更容易'OO-ify'发出请求的javascript。
    缺点:可能不像前两个选项那样容易使用。

我还考虑过选择一,同时在被调用服务中抽象视图逻辑,以便切换进出不同的布局是微不足道的。就个人而言,出于兼容性原因,我认为这个选项是最好的选择。

在打字时,我得到了另一个见解。根据添加到请求中的参数,允许所有三种响应格式是不是一个好主意?

5 个答案:

答案 0 :(得分:2)

如果您正在寻找适用于大多数可用框架的快速解决方案,我会选择JSON。它很容易入手并且有效。

如果你正在尝试构建一个你要扩展的更大的应用程序(就大小或者你自己的第三方扩展API而言),我会选择XML。您可以编写代理来提供JSON或HTML中的信息,但以XML作为主要来源在构建应用程序时绝对值得花费时间和精力。

就像@John Topley所说:这取决于。

答案 1 :(得分:2)

我同意John Topley的说法 - 这取决于申请。有一篇关于quirksmode的好文章讨论了您可能想要阅读的每种格式的优缺点:http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

答案 2 :(得分:0)

我认为这取决于您的应用程序将具有的“ajaxyness”级别。如果你的前端是一个“富客户端”,al'a gmail,我会选择JSON解决方案,因为你必须解决生成客户端视图的问题。如果您正在谨慎使用ajax,向用户提供简单的消息,偶尔更新一些字段等,那么我会选择选项1,因为大多数视图逻辑已经在服务器上。

答案 3 :(得分:0)

不应该难以产生不同的响应格式。 JSON最适合我,我希望将OO保留在js中,并且不知道如何很好地解析XML:)

答案 4 :(得分:0)

我认为尝试使用XmlHttpRequest将是一个巨大的麻烦,除非你不介意的头疼类型 - 要正确地做你几乎重新发明轮子。然后,人们喜欢在业余时间重新发明轮子,只是说,“嘿,我做到了”。不是我......

我会得到一个像prototype或Extjs这样的框架,它有很多内置的XML和JSON数据加载函数,而且你会得到更多可预测的结果,因为框架有事件处理程序来确保你的XmlHttpRequest成功或失败。此外,您还可以获得所有各种浏览器的支持。