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

  • 纯 HTML. 。让请求格式化数据并以可用的格式返回。
    优势: :易于调用页面使用。
    坏处: :非常僵化,坚持固定的布局。

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

  • JSON. 。让请求返回 JSON,使用 javascript 使用它,相应地渲染 HTML。
    优势: :更容易“OO-ify”发出请求的 JavaScript。
    坏处: :可能不如前两个选项那么容易使用。

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

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

有帮助吗?

解决方案

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

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

喜欢 @约翰·托普利 说:这取决于。

其他提示

我同意约翰·托普利的观点——这取决于应用程序。有一篇关于 quirksmode 的好文章,讨论了您可能想要阅读的每种格式的优点和缺点: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

我认为这取决于您的应用程序将具有的“ajaxyness”水平。如果您的前端是“富客户端”,例如 gmail,我会选择 JSON 解决方案,因为无论如何您都必须解决客户端视图生成的问题。如果您谨慎使用 ajax,向用户提供简单的消息,时不时更新一些字段等,那么我会选择选项 1,因为您的大部分视图逻辑已经在服务器上。

我认为尝试使用 XmlHttpRequest 将是一个非常令人头痛的问题,除非您不介意这种头痛 - 要正确地使用它,您几乎要重新发明轮子。话又说回来,人们喜欢在业余时间重新发明轮子,只是为了说,“嘿,我做到了”。不是我...

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

产生不同的响应格式应该不难。JSON 最适合我,我喜欢保留 OOjs, ,并且不知道如何很好地解析 XML :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top