shared from: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html
1. 返回XML文档
对返回的XML文档进行读取,然后插入到当前的HTML页面中。读取不方便,XSLT此时派上用场,将XML文档转换成另一种XML文档;
优点:可读性强;很多开发者已经习惯XML格式,而不是JSON数据(Saying "I'd like your server side script to return an XML document" won't cause raised eyebrows, while saying "I'd like the script to return a JSON object" might.);
缺点:将XML数据插入到HTML中的javascript较长。
2.返回HTML片段
不必返回整个页面,将需要的数据返回并插入到当前HTML页面中;
优点:a.插入脚本简单,$("#div").innerHTML = req.responseText;
b.在server端准备script来创建整个HTML页面(在任何设备上都可以显示);当请求恰好来自AJAX的时候,server端脚本会忽略掉除了搜到的结果以外的所有HTML数据;对比XML和JSON实现同样的功能,HTML是最简单的;
缺点:a.假如返回的HTML片段包含Forms,或得到一个Form元素,这种方法会在浏览器中产生(horrific)错误;
b.HTML片段可能很复杂;
3.返回JSON字符串
传递可以解释为javascript对象的字符串,当收到JSON数据的时候,用javascript的方法evel()将其转换成javascript object,随后操作;
优点:1.JSON绕过javascript的“同源策略”;也就是说,javascript不允许访问来自其他server的XML或HTML);然而如果用<script></script> import一个JSON文件将会解决这个问题。任何JSON数据都可以引用到任何网站上;
2.处理JSON数据的script比XML稍微简单;