在发出Ajax请求时要返回什么

时间:2010-05-05 09:45:30

标签: ajax

当我们从Ajax调用返回数据时,最好是返回包含HTML的文档以显示在页面上还是返回可以处理的XML / JSON数据?

我知道不同的情况可能决定“更好”意味着什么,但我真的想知道哪种情况更适合不同的情况。

我正在使用jQuery Ajax(表单插件)开发大型ASP .Net应用程序的框架。我最初的想法是将数据作为XML返回,然后相应地处理。然后,这会增加Javascript中所需的处理,以填充页面。我试图平衡灵活,清晰和简单。

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

5 个答案:

答案 0 :(得分:2)

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

一般来说,我会选择JSON。

答案 1 :(得分:1)

尽管“试图取悦每个人是平庸的快速通道”,但是让AJAX调用的服务器端处理程序依赖于变量的值生成XML,JSON或HTML是不是一种选择,叫,例如“格式”?

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

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

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

答案 2 :(得分:1)

取决于具体情况。

1)如果您只想用服务器端HTML填充div标签(例如CMS的新闻站点),请传输HTML并将其放在element.innerHTML中。这很简单有效。

2)如果您对处理数据有更多要求(动态客户端界面,例如网格,表格,表格等),请使用JSON或XML。

答案 3 :(得分:1)

如果您的AJAX调用是获取某些数据,请让服务器返回JSON。如果它只是为了获得一个标志,只需让它返回1或0或其他东西。如果要在页面中插入可以在服务器上更容易创建的内容,请让调用返回一些HTML。

答案 4 :(得分:0)

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

但是,如果服务器端逻辑的结果是更新页面的大部分内容,那么简单地重新呈现此部分服务器端并将其设置为某个容器的innerHTML可能会很方便。