代码之家  ›  专栏  ›  技术社区  ›  Russell

发出ajax请求时返回什么

  •  2
  • Russell  · 技术社区  · 14 年前

    当我们从ajax调用返回数据时,是返回包含html的文档以显示在页面上,还是返回可以处理的xml/json数据?

    我知道不同的情况可能会决定“更好”的含义,但我真的想知道哪个更适合不同的情况。

    我正在使用jquery ajax(表单插件)为大型asp.net应用程序开发框架。我最初的想法是将数据作为xml返回,然后进行相应的处理。然后这就增加了javascript中填充页面所需的处理。我在努力平衡灵活、清晰和简单。

    提前感谢您的知识和信息。

    5 回复  |  直到 14 年前
        1
  •  2
  •   mohdajami    14 年前

    有时只需要返回一个值,有时(例如树)可能需要返回具有不同级别的值数组。

    一般来说,我会使用json。

        2
  •  1
  •   Luke Stevenson    14 年前

    就像“取悦所有人是通向平庸的捷径”一样,让ajax调用的服务器端处理程序根据变量的值(例如“format”)生成xml、json或html难道不是一个选项吗?

    这将允许您根据传输的数据量、预期的处理(在客户端)更改格式,并在将来提供可扩展性。

    例如,对于一个非常简单的请求,您甚至可能很高兴只得到“true”或“false”的文本结果,所以您在查询的末尾添加了“format=simple”。 当请求一个项目列表时,json可能是更好的选择,因此“format=json”是这样的。

    我建议这样做,因为这似乎是谷歌提供的一些api技巧之一。

        3
  •  1
  •   wump    14 年前

    视情况而定。

    1)如果您只想用服务器端的HTML(例如CMS的新闻站点)填充一个div标记,那么传输HTML并将其放入element.innerHTML中。这是简单有效的。

    2)如果您对处理数据(动态客户端接口,如网格、表、表单等)有更多要求,请使用json或xml。

        4
  •  1
  •   Carson Myers    14 年前

    如果您的ajax调用是为了获取一些数据,那么让服务器将json返回给它。如果只是为了得到一个标志,就让它返回1或0或其他值。如果您想在页面中插入一些更容易在服务器上创建的内容,请让调用返回一些html。

        5
  •  0
  •   Tomas Vana    14 年前

    我认为这取决于你试图更新的范围有多窄。显然,如果页面中受从服务器获取的信息影响的区域很小,需要更新几个控件,那么最好简短(例如json)并在客户端进行处理。

    但是,如果服务器端逻辑的结果是更新页面的很大一部分,那么只需在服务器端重新呈现此部分并将其设置为某个容器的innerHTML就很方便了。