The AJAX response: XML, HTML, or JSON?

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稍微简单;

原文地址:https://www.cnblogs.com/paul-cheung/p/3191522.html