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

  • 纯HTML 让请求格式化数据并以可用格式返回它。
    优点 :易于被调用页面使用。
    缺点 :非常刚性,固定布局固定。

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

  • JSON 让请求返回JSON,使用javascript使用它,并相应地呈现HTML。
    优点 :更容易“ OO-化”发出请求的javascript。
    缺点 :可能不如前两个选项那么容易使用。

我还考虑过要在将选项抽象化到被调用服务中时选择选项一,这样就可以轻松地切入和切出不同的布局。 我个人认为,出于兼容性考虑,此选项是三个选项中的最佳选项。

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

===============>>#1 票数:2 已采纳

如果您正在寻找一种适用于大多数可用框架的快速解决方案,那么我将使用JSON。 它很容易入手并可以正常工作。

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

就像@John Topley所说:要看情况。

===============>>#2 票数:2

我同意John Topley-这取决于应用程序。 关于quirksmode的文章不错,讨论了您可能想阅读的每种格式的优缺点: http : //www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

===============>>#3 票数:0

我认为这种类型取决于您的应用程序将具有的“ ajaxyness”级别。 如果您的前端是“富客户端”(例如gmail),我将使用JSON解决方案,因为您必须解决无论如何都要生成客户端视图的问题。 如果您很少使用ajax,向用户提供简单消息,不时更新一些字段,依此类推,那么我会选择选项1,因为大多数视图逻辑已经在服务器上了。

===============>>#4 票数:0

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

===============>>#5 票数:0

我认为尝试使用XmlHttpRequest将是一个巨大的头痛,除非您不介意这种头痛的类型-正确地做到这一点,您几乎就要重新发明轮子了。 再说一次,人们喜欢在业余时间重新发明轮子,只是说:“嘿,我做到了”。 不是我...

我会得到一个像prototype或Extjs这样的框架,该框架具有针对XML和JSON内置的大量数据加载功能,此外,由于该框架具有事件处理程序来确保您的XmlHttpRequest成功或失败,因此您将获得更可预测的结果。 另外,您还获得对所有各种浏览器的支持。

  ask by Erik van Brakel translate from so

未解决问题?本站智能推荐:

1回复

使用XMLhttprequest从函数返回值

我对JS非常陌生,尝试创建一个简单的页面,然后执行以下操作: 需要某台服务器的IP 然后将获取请求发送到此服务器 解析得到响应, 将经过过滤的行添加到html页上的表格中。 我能够通过浏览器控制台完成所有步骤,但是当出于某种原因使用get函数移动到JS文
1回复

XMLHttpRequest没有返回值

我无法收到来自php文件的响应。 Java脚本 我什至试图做到这一点..... 的PHP 但是,这似乎也行不通...如果我在http.send(params)之后执行alert(“ http.response”)...它会在没有写任何内容的情况下发出警报。 我认为
1回复

XMLHttpRequest()返回0

我有以下javascript,当单击图像时会运行: 以及减去日.php如下所示: 为简单起见,已对代码进行了一些修改,与我的原始代码略有不同。 当我单击图像时,标识为“ hell”的元素将获得值0,这表示请求未初始化。 可以使用javascript代码从与文件相同的服务器上访问文件exclu
2回复

$ _POST不返回值

我一直在寻找答案的几天,但是如果我在另一篇文章中没有找到答案,请告诉我。 我试图进入Ajax,因此index.php中有一个非常简单的表单,带有单独的php和javascript文件: 的index.php main.js: ajax.php: 每当我尝试打印
1回复

$ .post返回值0

我想通过POST函数将变量从Javascript转换为PHP。 我试图做这样的事情: 问题行: Javascript: 我的PHP: 但是,“ idafeventet”不应该为“ 0”。 这是为什么?
1回复

从Ajax函数返回值

我正在尝试创建一个文本块,当文本从Json字符串更改时,该文本块将自行更新。 基本上我从开始: 然后将其修改为如下所示: 第一个函数正常运行并返回我的流标题。 第二个函数触发,但是我永远无法修改currentSongName的值。 我对Javascript和Ajax
2回复

用AJAX发布返回值?

我正在使用代码点火器,并且我的视图中具有以下Javascript函数。 我试图从控制器的处理程序函数中回显诸如“错误”之类的值,但是“成功”代码始终在下面的此函数中运行。 是否使用echo或return来回复AJAX帖子? 我为成功和失败返回什么价值?
2回复

拆分ajax返回值

我认为我想做的事情很简单,但我遇到了麻烦。 我正在尝试拆分我的ajax函数的返回值。 我认为我没有正确指定要分割的返回值。 代码如下。
3回复

从开关盒返回值

这有效(填充生成的下拉菜单): 但是element.size是一个数字,我需要字母。 因此,我做了以下功能: 然后像这样: 而且我的下拉列表中填充了null 。 建议?
3回复

Ajax请求返回值

我对我的控制器操作进行了Ajax调用,如下所示: 如您所见,我将actionparametter返回给我的控制器,控制器必须返回true或false,这必须是我的“ m”值,但是我无法使其正常工作。 有任何想法吗? 控制器代码: 以及全功能代码: 我在javasc